ssh: Tidak dapat menyelesaikan nama host [nama host]: nodename atau servname yang disediakan, atau tidak dikenal

132

Saya mencoba mengatur VPN dengan Raspberry Pi, dan langkah pertama adalah mendapatkan kemampuan untuk sshmasuk ke perangkat dari luar jaringan lokal saya. Untuk alasan apa pun, ini terbukti mustahil dan saya tidak tahu mengapa. Ketika saya mencoba sshmasuk ke server saya dengan user@hostname, saya mendapatkan kesalahan:

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

Namun, saya bisa masuk ke server dengan,

ssh user@[local IP]

Servernya adalah Raspberry Pi Model B yang menjalankan distribusi terbaru Raspbian dan mesin yang saya coba sambungkan adalah Macbook Pro yang menjalankan Mavericks. sshdiaktifkan di Raspberry Pi ketika saya mengatur Raspbian.

Saya telah meneliti Stack Overflow selama berjam-jam mencoba untuk melihat apakah ada orang lain yang memiliki masalah ini dan saya belum menemukan apa pun. Setiap sshtutorial yang saya temukan mengatakan bahwa saya seharusnya bisa memasangnya di mesin jarak jauh dan masuk dari mana saja menggunakan nama host, dan saya tidak pernah berhasil dengan itu.

qaxf6auux
sumber
Kesalahan asli mengarah ke masalah khusus - apa pun yang [hostname]Anda gunakan tidak dapat diselesaikan dari tempat Anda mencobanya. Apakah nslookup [hostname]memberi Anda kembali apa yang [local IP]Anda harapkan?
Mengagumi
2
nslookup [hostname]dimuntahkan; Server: 8.8.8.8 Alamat: 8.8.8.8 # 53 ** server tidak dapat menemukan [hostname]: NXDOMAIN saat dijalankan dari Macbook saya
qaxf6auux
2
Hanya untuk memastikan - Anda memasukkan nama host yang sebenarnya [hostname], bukan?
Mengagumi
Output itu menunjukkan Anda menggunakan server DNS publik Google, yang tidak memiliki pengetahuan tentang nama host apa pun yang Anda coba gunakan. Bagaimana tepatnya Anda menyiapkan catatan DNS untuk nama host Anda?
Mengagumi
2
Server: 192.168.0.1 Address: 192.168.0.1#53 ** server can't find mrddr: NXDOMAIN
Nakilon

Jawaban:

29

Baru-baru ini saya menemukan masalah yang sama. Saya bisa ssh ke pi saya di jaringan saya, tetapi tidak dari luar jaringan rumah saya.

Saya sudah:

  • diinstal dan diuji ssh di jaringan rumah saya.
  • Atur IP statis untuk pi saya.
  • Mengatur layanan DNS Dinamis dan menginstal perangkat lunak pada pi saya. Saya merujuk petunjuk ini untuk mengatur ip statis, dan ada banyak sumber daya instruksional di luar sana.

Juga, saya mengatur port forward pada router saya untuk hosting situs web dan saya bahkan telah port forward port 22 ke IP statis pi saya untuk ssh, tapi saya meninggalkan bidang kosong di mana Anda menentukan aplikasi yang Anda gunakan untuk port forwarding. router. Lagi pula, saya menambahkan 'ssh' ke bidang ini dan, VOILA! Koneksi ssh yang berfungsi dari mana saja ke pi saya.

Saya akan menuliskan pengaturan penerusan port router saya.

(ApplicationTextField) _ssh (port eksternal) _22 (Port Internal) _22 (Protocal) _Kedua (Ke Alamat IP) _192.168.1. ### (Diaktifkan) _checkBox

Pengaturan penerusan port bisa berbeda untuk router yang berbeda, jadi cari petunjuk untuk router Anda.

Sekarang, ketika saya berada di luar jaringan rumah saya, saya terhubung ke pi saya dengan mengetik:

ssh pi @ [nama host]

Kemudian saya dapat memasukkan kata sandi dan terhubung.

ekwaters
sumber
109

Jika Anda menggunakan Mac, me-restart responder DNS memperbaiki masalah saya.

sudo killall -HUP mDNSResponder
Mo Bitar
sumber
Saya juga perlu melakukan ping, nslookup, dan menggali domain. Tidak yakin yang mana yang membantu. Mungkin hanya menunggu membantu.
Samizdis
bekerja untuk saya juga. Masalah ini dimulai setelah saya me-restart mac saya .. tidak tahu apa yang kacau saat boot
murli
1
Saya juga ingin tahu mengapa ini bekerja ... dan apa yang menyebabkan masalah sejak awal.
mystic cola
Jika nslookupberhasil, tetapi ssh / ping / apa pun tidak, ini memperbaiki masalah. Terima kasih.
Erik B
93

Saya memiliki masalah yang sama menghubungkan ke mesin jarak jauh. tapi saya berhasil login seperti di bawah ini:

ssh -p 22 myName@hostname

atau:

ssh -l myName -p 22 hostname
tokhi
sumber
1
akhirnya berhasil! pasti ada bug dengan sintaksssh myName@hostname:myPort
Edoardo
10

Jika Anda memerlukan akses ke VPN dari mana saja di dunia, Anda harus mendaftarkan nama domain dan mengarahkannya ke alamat ip publik VPN / gateway jaringan Anda. Anda juga dapat menggunakan layanan DNS Dinamis untuk menghubungkan nama host ke ip publik Anda.

Jika Anda hanya perlu ssh dari Mac ke Raspberry di dalam jaringan lokal Anda , lakukan ini: Di ​​Mac Anda, edit /etc/hosts. Dengan asumsi Raspberry memiliki nama host "berry" dan ip "172.16.0.100", tambahkan satu baris:

# ip           hostname
172.16.0.100   berry

Sekarang: ssh user@berryharus bekerja.

grebneke
sumber
Selain di atas, saya menggunakan "windows-cmd" untuk mengenal ip untuk server-url saya. Saya melakukan "ping url", untuk mendapatkan IP. dan karenanya, menambahkan IP dan pasangan URL di "/ etc / hosts". Ini bekerja sempurna di sana setelah (git pull, dll.)!
parasrish
9

Saya memiliki masalah yang sama, yang dapat saya atasi dengan menambahkan .local ke nama host, ala ssh [email protected]

horcle_buzz
sumber
Itu berhasil untuk saya. ping $(hostname)sedang bekerja tetapi perlu dilakukan ssh $(hostname).local. Mac biasanya hebat .. tetapi ketika itu menyebalkan, itu benar-benar ..
javadba
Saya memiliki masalah lebih lanjut: hadoopperlu dilakukan ssh user@hostnamedan saya tidak bisa menambahkan .localsecara manual. Saya macet
javadba
Menambahkan .localmelakukannya untuk saya di Ubuntu 19.10.
prkos
5

Dalam kasus saya, saya mencoba ssh seperti ini

ssh [email protected]:22 

ketika format yang benar adalah:

ssh [email protected] -p 22 
Pedro
sumber
1
Wow-- macet selamanya dengan port forwarding! Ini adalah teks suci.
beku
4

Jika perintah Anda adalah:

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

Anda juga akan menghadapi kesalahan yang sama

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

ketika Anda melewatkan opsi -i /path/to/pemfile ssh

Jadi Perintah harus:

$ ssh -p 1122 -i path/to/pemfile user@[hostip/hostname]
karthik v
sumber
Saya tidak menggunakan opsi pemfile tetapi masih terhubung menggunakanssh -p xxxx user@hostname
Yoku
4

Saya perlu terhubung ke server Amazon jarak jauh

ssh -i ~/.ssh/test.pem -fN -L 5555:localhost:5678 [email protected]

Saya mendapatkan kesalahan berikut.

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

Solusi Untuk Mac OSX

Ping tuan rumah menyelesaikan masalah. Saya menggunakan Mac OSX Seirra.

ping hostname.com

Sekarang masalah terselesaikan. Mampu terhubung ke server.

Catatan : Saya juga mencoba solusi ini . Tapi itu tidak berhasil. Kemudian pingdiselesaikan masalah tersebut.

pembuat kode mitos
sumber
3

Saya memiliki masalah yang sama: Alamat yang ditunjukkan di Preferensi -> Berbagi -> Remote Login tidak berfungsi dan saya mendapat '... nodename atau servname yang disediakan, atau tidak dikenal'. Namun, ketika saya mengedit pengaturan secara manual (dalam Preferensi -> Berbagi -> Remote Login -> edit) dan mengaktifkan "Gunakan nama host global yang dinamis", tiba-tiba berfungsi.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini


sumber
3

Tampaknya beberapa aplikasi tidak akan membaca yang disinkronkan /etc/hosts(setidaknya di macOS), Anda harus memasang tautannya .

ln /path/to/hosts_file /etc/hosts

Andrei Vaduva
sumber
2

Ini terjadi pada saya ketika mencoba mengakses Github. Masalahnya adalah saya terbiasa melakukan:

git remote add <xyz> ssh:\\[email protected]......

Tapi, jika Anda mengalami kesalahan ini dari pertanyaan, hapus ssh:\\ dapat menyelesaikan masalah. Itu memecahkannya untukku!

Perhatikan bahwa Anda harus melakukan git remote remove <xyz>dan menambahkan kembali url jarak jauh tanpa ssh:\\.

Monkpit
sumber
1
Apakah Anda benar-benar menggunakan, ssh:\\bukan ssh://?
Radon Rosborough
@RadonRosborough Ini beberapa waktu yang lalu sekarang ... jadi, saya tidak yakin. Mungkin! :)
Monkpit
1

Bagi saya, masalahnya adalah kesalahan ketik pada ~/.ssh/configfile saya . Saya punya:

Host host1:
  HostName 10.10.1.1
  User jlyonsmith

Masalahnya adalah :setelah host1- seharusnya tidak ada di sana. sshtidak memberikan peringatan untuk kesalahan ketik dalam ~/.ssh/configfile. Ketika tidak dapat menemukannya host1mencari mesin secara lokal, tidak dapat menemukannya dan mencetak pesan kesalahan samar.

jlyonsmith
sumber
0

Coba ini, pertimbangkan port yang diizinkan. Simpan .pemfile Anda diDocumentsMisalnya, folder .

Untuk mendapatkan akses ke sana sekarang yang harus Anda lakukan adalah cd [directory], yang memindahkan Anda ke direktori file yang diberikan. Anda dapat mengetik ls, untuk daftar konten direktori Anda saat ini:

ls
cd /Documents
chmod 400 mycertificate.pem
ssh -i "mycertificate.pem" [email protected] -p 80
Karl Richter
sumber
0

Saya mendapatkan kesalahan ini dengan menggunakan file inventaris .yml di ansible yang tidak diformat dengan benar. Untuk beberapa host dalam grup, setiap nama host harus diakhiri dengan tanda titik dua ":". Jika tidak, jalankan nama host bersama dan menghasilkan kesalahan ssh ini.

Steve Yount
sumber