ssh: Không thể giải quyết tên máy chủ [tên máy chủ]: tên nút cũng như tên dịch vụ được cung cấp hoặc không biết


131

Tôi đang cố gắng thiết lập VPN với Raspberry Pi và bước đầu tiên là đạt được khả năng sshvào thiết bị từ bên ngoài mạng cục bộ của tôi. Vì bất kỳ lý do gì, điều này được chứng minh là không thể và tôi không có manh mối nhỏ nhất tại sao. Khi tôi cố gắng sshvào máy chủ của mình user@hostname, tôi gặp lỗi:

ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known 

Tuy nhiên, tôi có thể đăng nhập vào máy chủ với,

ssh user@[local IP]

Máy chủ là Raspberry Pi Model B chạy bản phân phối Raspbian mới nhất và máy tôi đang cố gắng kết nối với nó là Macbook Pro chạy Mavericks. sshđã được bật trên Raspberry Pi khi tôi thiết lập Raspbian.

Tôi đã kiểm tra Stack Overflow trong nhiều giờ để thử xem có ai gặp vấn đề này không và tôi không tìm thấy gì. Mỗi sshhướng dẫn tôi tìm thấy đều nói rằng tôi chỉ cần có thể thiết lập nó trên máy từ xa và đăng nhập từ bất cứ đâu bằng tên máy chủ và tôi chưa bao giờ thành công với điều đó.


Lỗi ban đầu đang chỉ ra vấn đề cụ thể - bất cứ điều gì [hostname]bạn đang sử dụng đều không thể được giải quyết từ nơi bạn đang thử. Có nslookup [hostname]cung cấp cho bạn trở lại những [local IP]gì bạn mong đợi?
ngưỡng mộ

2
nslookup [hostname]phun ra; Máy chủ: 8.8.8.8 Địa chỉ: 8.8.8.8 # 53 ** máy chủ không thể tìm thấy [tên máy chủ]: NXDOMAIN khi chạy từ Macbook của tôi
qaxf6auux

2
Chỉ cần chắc chắn - bạn đang đặt một tên máy chủ thực sự [hostname], phải không?
ngưỡng mộ

Đầu ra đó cho thấy bạn đang sử dụng (các) máy chủ DNS công cộng của Google, nơi không có bất kỳ kiến ​​thức nào về bất kỳ tên máy chủ nào bạn đang cố sử dụng. Làm thế nào chính xác là bạn đang thiết lập bản ghi DNS cho tên máy chủ của bạn?
ngưỡng mộ

2
Server: 192.168.0.1 Address: 192.168.0.1#53 ** server can't find mrddr: NXDOMAIN
Nakilon

Câu trả lời:


29

Gần đây tôi đã gặp một vấn đề tương tự. Tôi đã có thể ssh đến pi của tôi trên mạng của tôi, nhưng không phải từ bên ngoài mạng gia đình của tôi.

Tôi đã có:

  • cài đặt và thử nghiệm ssh trên mạng gia đình của tôi.
  • Đặt IP tĩnh cho số pi của tôi.
  • Thiết lập dịch vụ DNS động và cài đặt phần mềm trên pi của tôi. Tôi đã tham khảo các hướng dẫn này để thiết lập ip tĩnh và có rất nhiều tài nguyên hướng dẫn ngoài kia.

Ngoài ra, tôi đã thiết lập cổng chuyển tiếp trên bộ định tuyến của mình để lưu trữ một trang web và tôi thậm chí đã chuyển cổng 22 sang IP tĩnh của pi cho ssh, nhưng tôi để trống trường nơi bạn chỉ định ứng dụng bạn đang thực hiện chuyển tiếp cổng bộ định tuyến. Dù sao, tôi đã thêm 'ssh' vào lĩnh vực này và, VOILA! Một kết nối ssh làm việc từ bất cứ nơi nào để pi của tôi.

Tôi sẽ viết ra các cài đặt chuyển tiếp cổng của bộ định tuyến.

(ApplicationTextField) _ssh (cổng ngoài) _22 (Cổng nội bộ) _22 (Protocal) _Both (Đến địa chỉ IP) _192.168.1. ### (Đã bật) _checkBox

Cài đặt chuyển tiếp cổng có thể khác nhau cho các bộ định tuyến khác nhau, vì vậy hãy tìm hướng cho bộ định tuyến của bạn.

Bây giờ, khi tôi ở ngoài mạng gia đình, tôi kết nối với số pi của mình bằng cách gõ:

ssh pi @ [tên máy chủ]

Sau đó, tôi có thể nhập mật khẩu của mình và kết nối.


109

Nếu bạn đang sử dụng máy Mac, việc khởi động lại bộ phản hồi DNS đã khắc phục sự cố cho tôi.

sudo killall -HUP mDNSResponder

Tôi cũng cần ping, nslookup và đào tên miền. Không chắc chắn những điều này đã giúp. Có lẽ chỉ cần chờ đợi đã giúp.
Samizdis

cũng làm việc cho tôi..có vấn đề này bắt đầu sau khi tôi khởi động lại máy mac của mình..không biết điều gì đã gây rối trong quá trình khởi động
murli

Tôi cũng tò mò muốn biết tại sao điều này hoạt động ... và điều gì gây ra vấn đề ngay từ đầu.
cola huyền bí

Nếu nslookuphoạt động, nhưng ssh / ping / bất cứ điều gì không, điều này sẽ khắc phục vấn đề. Cảm ơn.
Erik B

93

Tôi gặp vấn đề tương tự khi kết nối với một máy từ xa. nhưng tôi đã đăng nhập như sau:

ssh -p 22 myName@hostname

hoặc là:

ssh -l myName -p 22 hostname

cuối cùng nó hoạt động! phải có một lỗi với cú phápssh myName@hostname:myPort
Edoardo

10

Nếu bạn cần quyền truy cập vào VPN của mình từ bất kỳ đâu trên thế giới, bạn cần đăng ký một tên miền và chỉ đến địa chỉ IP công cộng của VPN / cổng mạng của bạn. Bạn cũng có thể sử dụng dịch vụ DNS động để kết nối tên máy chủ với ip công khai của mình.

Nếu bạn chỉ cần ssh từ máy Mac sang Raspberry trong mạng cục bộ , hãy làm điều này: Trên máy Mac, hãy chỉnh sửa /etc/hosts. Giả sử Raspberry có tên máy chủ "berry" và ip "172.16.0.100", thêm một dòng:

# ip           hostname
172.16.0.100   berry

Bây giờ: ssh user@berrynên làm việc.


Ngoài ra, tôi đã sử dụng "windows-cmd" để tìm hiểu ip cho url máy chủ của mình. Tôi đã "ping url", để lấy IP. và do đó, đã thêm IP và cặp URL trong "/ etc / hosts". Nó hoàn toàn hoạt động ở đó sau (git kéo, vv)!
ký sinh

9

Tôi đã có cùng một vấn đề, mà tôi đã có thể giải quyết bằng cách thêm một .local vào tên máy chủ, ala ssh user@hostname.local


Điều đó đã làm nó cho tôi. ping $(hostname)đã làm việc nhưng cần phải làm ssh $(hostname).local. Mac thường rất tuyệt .. nhưng khi nó hút, nó thực sự hoạt động ..
javadba

Tôi có một vấn đề nữa: hadoopcần phải làm ssh user@hostnamevà tôi không thể đơn giản thêm .localthủ công. Tôi bị kẹt
javadba

Thêm .localđã làm điều đó cho tôi trên Ubuntu 19.10.
prkos

5

Trong trường hợp của tôi, tôi đã thử ssh như thế này

ssh pedro@192.168.2.179:22 

khi định dạng đúng là:

ssh pedro@192.168.2.179 -p 22 

1
Wow-- đã bị mắc kẹt mãi mãi với cổng chuyển tiếp! Đây là văn bản thánh.
FrozenOne

4

Nếu lệnh của bạn là:

$ ssh -p 1122  path/to/pemfile user@[hostip/hostname]

Bạn cũng sẽ phải đối mặt với lỗi tương tự

ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known

khi bạn bỏ lỡ tùy chọn -i /path/to/pemfilecủa ssh

Vì vậy, lệnh nên là:

$ ssh -p 1122 -i path/to/pemfile user@[hostip/hostname]

Tôi đã không sử dụng các tùy chọn pemfile nhưng vẫn được kết nối bằng cách sử dụngssh -p xxxx user@hostname
Yoku

4

Tôi cần kết nối với máy chủ Amazon từ xa

ssh -i ~/.ssh/test.pem -fN -L 5555:localhost:5678 ubuntu@hostname.com

Tôi đã nhận được lỗi sau.

ssh: Could not resolve hostname <hostname.com>: nodename nor servname provided, or not known

Giải pháp cho Mac OSX

Ping chủ nhà giải quyết vấn đề. Tôi đang sử dụng Mac OSX Seirra.

ping hostname.com

Bây giờ vấn đề đã được giải quyết. Có khả năng kết nối với máy chủ.

Lưu ý : Tôi cũng đã thử giải pháp này . Nhưng nó đã không thành công. Sau đó pinggiải quyết vấn đề.


3

Tôi gặp vấn đề tương tự: Địa chỉ hiển thị trong Tùy chọn -> Chia sẻ -> Đăng nhập từ xa không hoạt động và tôi nhận được '... tên nút cũng như tên dịch vụ được cung cấp hoặc không biết'. Tuy nhiên, khi tôi chỉnh sửa thủ công các cài đặt (trong Tùy chọn -> Chia sẻ -> Đăng nhập từ xa -> chỉnh sửa) và bật "Sử dụng tên máy chủ toàn cầu động", nó đột nhiên hoạt động.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


3

Có vẻ như một số ứng dụng sẽ không đọc symlinked /etc/hosts(ít nhất là trên macOS), bạn cần phải liên kết cứng nó.

ln /path/to/hosts_file /etc/hosts


2

Điều này đã xảy ra với tôi khi cố gắng truy cập Github. Vấn đề là tôi đã có thói quen làm:

git remote add <xyz> ssh:\\git@github.com......

Nhưng, nếu bạn gặp lỗi này từ câu hỏi, hãy xóa ssh:\\ có thể giải quyết vấn đề. Nó giải quyết nó cho tôi!

Lưu ý rằng bạn sẽ phải thực hiện git remote remove <xyz>và thêm lại url từ xa mà không có ssh:\\.


1
Bạn đã thực sự sử dụng ssh:\\chứ không phải ssh://?
Radon Rosborough

@RadonRosborough Đây là một thời gian trước đây ... vì vậy, tôi không chắc chắn. Có thể có! :)
Monkpit

1

Đối với tôi, vấn đề là một lỗi đánh máy trong ~/.ssh/configtập tin của tôi . Tôi đã có:

Host host1:
  HostName 10.10.1.1
  User jlyonsmith

Vấn đề là :sau host1đó - nó không nên ở đó. sshkhông đưa ra cảnh báo cho lỗi chính tả trong ~/.ssh/configtập tin. Khi không thể tìm thấy, host1nó sẽ tìm máy cục bộ, không thể tìm thấy nó và in thông báo lỗi khó hiểu.


0

Hãy thử điều này, xem xét các cổng được phép của bạn. Lưu trữ .pemtệp của bạn trongDocuments thư mục chẳng hạn.

Để có quyền truy cập vào nó bây giờ, tất cả những gì bạn phải làm là cd [directory], điều này sẽ chuyển bạn đến thư mục của tệp được phân bổ. Trước tiên ls, bạn có thể nhập , để liệt kê nội dung thư mục bạn hiện đang ở:

ls
cd /Documents
chmod 400 mycertificate.pem
ssh -i "mycertificate.pem" ec2-user@ec2-1-2-3-4.us-compass-0.compute.amazonaws.com -p 80

0

Tôi đã gặp lỗi này bằng cách sử dụng tệp kiểm kê .yml trong ansible không được định dạng chính xác. Đối với nhiều máy chủ lưu trữ trong một nhóm, mỗi tên máy chủ cần kết thúc bằng dấu hai chấm cứng ":". Nếu không, ansible chạy các tên máy chủ với nhau và tạo ra lỗi ssh này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.