ssh: Impossibile risolvere il nome host [nomehost]: nome nodo o nome servizio fornito o non noto


132

Sto cercando di configurare una VPN con un Raspberry Pi e il primo passo è acquisire la capacità di accedere al sshdispositivo dall'esterno della mia rete locale. Per qualsiasi motivo, questo si sta rivelando impossibile e non ho il minimo indizio del perché. Quando provo ad accedere al sshmio server con user@hostname, ottengo l'errore:

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

Tuttavia, posso accedere al server con,

ssh user@[local IP]

Il server è un Raspberry Pi Model B che esegue l'ultima distribuzione di Raspbian e la macchina con cui sto cercando di connettermi è un MacBook Pro con Mavericks. sshè stato abilitato su Raspberry Pi quando ho configurato Raspbian.

Ho esaminato Stack Overflow per ore cercando di vedere se qualcun altro aveva questo problema e non ho trovato nulla. Ogni sshtutorial che trovo dice che dovrei essere in grado di configurarlo sul computer remoto e accedere da qualsiasi luogo utilizzando un nome host, e non ho mai avuto successo con quello.


L'errore originale indica il problema specifico: qualsiasi cosa [hostname]tu stia utilizzando non può essere risolta da dove lo stai provando. Ti nslookup [hostname]restituisce ciò che [local IP]ti aspetti?
Ammesso il

2
nslookup [hostname]sputa fuori; Server: 8.8.8.8 Indirizzo: 8.8.8.8 # 53 ** impossibile trovare il server [nome host]: NXDOMAIN quando eseguito dal mio Macbook
qaxf6auux,

2
Giusto per essere sicuri: stai inserendo un vero nome host [hostname], giusto?
Ammesso il

Quell'output mostra che stai utilizzando i server DNS pubblici di Google, che non hanno alcuna conoscenza del nome host che stai cercando di utilizzare. Come stai configurando esattamente i record DNS per il tuo nome host?
Ammesso il

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

Risposte:


29

Di recente ho riscontrato lo stesso problema. Sono stato in grado di inviare ssh al mio pi sulla mia rete, ma non dall'esterno della mia rete domestica.

Avevo già:

  • installato e testato ssh sulla mia rete domestica.
  • Imposta un IP statico per il mio pi.
  • Imposta un servizio DNS dinamico e installa il software sul mio pi. Ho fatto riferimento a queste istruzioni per impostare l'ip statico e ci sono molte altre risorse didattiche là fuori.

Inoltre, ho impostato il port forwarding sul mio router per l'hosting di un sito Web e avevo persino il port forwarding della porta 22 sull'IP statico di pi per ssh, ma ho lasciato il campo vuoto dove si specifica l'applicazione per cui si sta eseguendo il port forwarding il router. Comunque, ho aggiunto 'ssh' in questo campo e, VOILA! Una connessione ssh funzionante da qualsiasi luogo al mio pi.

Scriverò le impostazioni di port forwarding del mio router.

(ApplicationTextField) _ssh (porta esterna) _22 (Porta interna) _22 (Protocal) _Entrambe (a indirizzo IP) _192.168.1. ### (abilitato) _checkBox

Tuttavia, le impostazioni di port forwarding possono essere diverse per router diversi, quindi cerca le indicazioni per il tuo router.

Ora, quando sono fuori dalla mia rete domestica, mi collego al mio pi digitando:

ssh pi @ [nome host]

Quindi sono in grado di inserire la mia password e connettermi.


109

Se sei su Mac, il riavvio del risponditore DNS ha risolto il problema per me.

sudo killall -HUP mDNSResponder

Avevo anche bisogno di ping, nslookup e scavare il dominio. Non sono sicuro di quale di questi abbia aiutato. Forse solo aspettare ha aiutato.
Samizdis,

ha funzionato anche per me..questo problema è iniziato dopo che ho riavviato il mio mac..non so cosa sia incasinato durante l'avvio
murli

1
Sono anche curioso di sapere perché questo funziona ... e cosa sta causando il problema in primo luogo.
Cola

Se nslookupfunziona, ma ssh / ping / qualunque cosa non funzioni, questo risolve il problema. Grazie.
Erik B,

93

Ho avuto lo stesso problema durante la connessione a una macchina remota. ma sono riuscito ad accedere come di seguito:

ssh -p 22 myName@hostname

o:

ssh -l myName -p 22 hostname

1
finalmente funziona! ci deve essere un bug con la sintassissh myName@hostname:myPort
Edoardo

10

Se hai bisogno di accedere alla tua VPN da qualsiasi parte del mondo, devi registrare un nome di dominio e farlo puntare all'indirizzo IP pubblico del tuo gateway VPN / di rete. Puoi anche utilizzare un servizio DNS dinamico per connettere un nome host al tuo IP pubblico.

Se hai solo bisogno di ssh dal tuo Mac al tuo Raspberry all'interno della tua rete locale , fai come segue: Sul tuo Mac, modifica /etc/hosts. Supponendo che Raspberry abbia l'hostname "berry" e ip "172.16.0.100", aggiungi una riga:

# ip           hostname
172.16.0.100   berry

Ora: ssh user@berrydovrebbe funzionare.


Oltre a quanto sopra, ho usato "windows-cmd" per conoscere l'ip per il mio server-url. Ho fatto "ping url", per ottenere l'IP. e quindi, aggiunto l'IP e la coppia URL in "/ etc / hosts". Funziona perfettamente lì dopo (git pull, ecc.)!
Parassita

9

Ho avuto lo stesso problema, che sono stato in grado di risolvere aggiungendo un .local al nome host, ala ssh user@hostname.local


Che ha fatto per me. ping $(hostname)stava funzionando ma bisogna farlo ssh $(hostname).local. Il Mac di solito è fantastico .. ma quando fa schifo, lo fa davvero ...
javadba,

Ho un ulteriore problema: hadoopdeve fare ssh user@hostnamee non posso semplicemente aggiungere .localmanualmente. Sono bloccato
javadba,

L'aggiunta l'ha .localfatto per me su Ubuntu 19.10.
prkos

5

Nel mio caso stavo provando ssh in questo modo

ssh pedro@192.168.2.179:22 

quando il formato corretto è:

ssh pedro@192.168.2.179 -p 22 

1
Wow-- era bloccato per sempre con il port forwarding! Questo è il testo sacro.
frozenOne

4

Se il tuo comando è:

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

Dovrai anche affrontare lo stesso errore

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

quando ti manca l'opzione -i /path/to/pemfiledi ssh

Quindi Command dovrebbe essere:

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

Non ho usato le opzioni del pemfile ma ancora connesso usandossh -p xxxx user@hostname
Yoku il

4

Avevo bisogno di connettermi al server Amazon remoto

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

Stavo ottenendo il seguente errore.

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

Soluzione per Mac OSX

Il ping dell'host ha risolto il problema. Sto usando Mac OSX Seirra.

ping hostname.com

Ora problema risolto. In grado di connettersi al server.

Nota : ho provato anche questa soluzione . Ma non ha funzionato. Quindi pingrisolto il problema.


3

Ho avuto lo stesso problema: l'indirizzo mostrato in Preferenze -> Condivisione -> Accesso remoto non ha funzionato e ho ottenuto un '... nome nodo o nome servizio fornito o non noto'. Tuttavia, quando ho modificato manualmente le impostazioni (in Preferenze -> Condivisione -> Accesso remoto -> modifica) e abilitato "Usa nome host globale dinamico", all'improvviso ha funzionato.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


3

Sembra che alcune app non leggano il link simbolico /etc/hosts(almeno su macOS), è necessario collegarlo al link.

ln /path/to/hosts_file /etc/hosts


2

Questo mi stava succedendo quando cercavo di accedere a Github. Il problema è che avevo l'abitudine di fare:

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

Tuttavia, se si verifica questo errore dalla domanda, la rimozione ssh:\\potrebbe risolvere il problema. Lo ha risolto per me!

Tieni presente che dovrai fare un git remote remove <xyz>e aggiungere nuovamente l'URL remoto senza ssh:\\.


1
Hai usato davvero ssh:\\piuttosto che ssh://?
Radon Rosborough,

@RadonRosborough Questo era un po 'di tempo fa adesso ... quindi, non sono sicuro. Potrebbe avere! :)
Monkpit

1

Per me, il problema era un errore di battitura sul mio ~/.ssh/configfile. Avevo:

Host host1:
  HostName 10.10.1.1
  User jlyonsmith

Il problema era il :dopo il host1- non dovrebbe essere lì. sshnon fornisce avvisi per errori di battitura nel ~/.ssh/configfile. Quando non riesce a trovare host1, cerca la macchina localmente, non riesce a trovarla e stampa il messaggio di errore criptico.


0

Prova questo, considerando le tue porte consentite. Archivia il tuo .pemfile nella tua Documentscartella, ad esempio.

Per accedervi ora non ti resta cd [directory]che spostarti nella directory del file assegnato. Puoi prima digitare ls, per elencare i contenuti della directory in cui ti trovi attualmente:

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

Ho riscontrato questo errore utilizzando un file di inventario .yml in ansible che non è stato formattato correttamente. Per più host in un gruppo, ogni nome host deve terminare con due punti ":". Altrimenti ansible esegue insieme i nomi host e produce questo errore ssh.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.