ssh: Não foi possível resolver o nome do host [nome do host]: nome do nó nem nome do serviço fornecido ou desconhecido


131

Estou tentando configurar uma VPN com um Raspberry Pi e o primeiro passo é obter a capacidade de sshacessar o dispositivo de fora da minha rede local. Por alguma razão, isso está se mostrando impossível e não tenho a menor idéia do porquê. Quando tento sshentrar no meu servidor user@hostname, recebo o erro:

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

No entanto, eu posso entrar no servidor com,

ssh user@[local IP]

O servidor é um Raspberry Pi Modelo B executando a distribuição mais recente do Raspbian e a máquina com a qual estou tentando conectar é um Macbook Pro executando o Mavericks. sshfoi ativado no Raspberry Pi quando configurei o Raspbian.

Examinei o Stack Overflow por horas tentando ver se mais alguém tinha esse problema e não encontrei nada. Todos os sshtutoriais encontrados dizem que devo configurá-lo na máquina remota e efetuar login de qualquer lugar usando um nome de host, e nunca tive sucesso com isso.


O erro original está apontando para um problema específico - o que [hostname]você está usando não pode ser resolvido de onde você está tentando. Devolve nslookup [hostname]o que [local IP]você está esperando?
admdrew 27/11/2013

2
nslookup [hostname]cospe; Servidor: 8.8.8.8 Endereço: 8.8.8.8 servidor nº 53 ** não consegue encontrar [hostname]: NXDOMAIN quando executado a partir o meu Macbook
qaxf6auux

2
Só para ter certeza - você está colocando um nome de host real [hostname], certo?
admdrew 27/11

Essa saída mostra que você está usando o servidor DNS público do Google, que não tem conhecimento de qualquer nome de host que esteja tentando usar. Como exatamente você está configurando registros DNS para o seu nome de host?
admdrew

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

Respostas:


29

Recentemente me deparei com o mesmo problema. Eu era capaz de ssh para o meu pi na minha rede, mas não de fora da minha rede doméstica.

Eu já tinha:

  • instalei e testei o ssh na minha rede doméstica.
  • Defina um IP estático para o meu pi.
  • Configure um serviço DNS dinâmico e instalei o software no meu pi. Mencionei estas instruções para configurar o IP estático e existem muitos outros recursos instrucionais por aí.

Além disso, configurei a porta de encaminhamento no meu roteador para hospedar um site e eu tinha até a porta de encaminhamento de porta 22 para o IP estático do pi para ssh, mas deixei o campo em branco onde você especifica o aplicativo para o qual está realizando o encaminhamento de portas. o roteador. Enfim, adicionei 'ssh' nesse campo e, VOILA! Uma conexão ssh funcionando de qualquer lugar para o meu pi.

Escreverei as configurações de encaminhamento de porta do meu roteador.

(ApplicationTextField) _ssh (porta externa) _22 (porta interna) _22 (Protocal) _Both (para endereço IP) _192.168.1. ### (ativado) _checkBox

As configurações de encaminhamento de porta podem ser diferentes para roteadores diferentes, portanto, consulte as instruções do seu roteador.

Agora, quando estou fora da minha rede doméstica, conecto-me ao meu pi digitando:

ssh pi @ [nome do host]

Então, consigo inserir minha senha e conectar-me.


109

Se você estiver no Mac, reiniciar o respondedor de DNS corrigiu o problema para mim.

sudo killall -HUP mDNSResponder

Eu também precisava executar ping, nslookup e cavar o domínio. Não tenho certeza qual deles ajudou. Talvez apenas a espera tenha ajudado.
Samizdis 24/07/19

funcionou para mim também .. este problema começou depois que eu reiniciei o meu mac .. não sei o que errei durante a inicialização
murli

1
Também estou curioso para saber por que isso funciona ... e o que está causando o problema em primeiro lugar.
mystic cola

Se nslookupfuncionar, mas ssh / ping / o que não funcionar, isso corrige o problema. Obrigado.
Erik B

93

Eu tive o mesmo problema ao conectar-me a uma máquina remota. mas consegui acessar como abaixo:

ssh -p 22 myName@hostname

ou:

ssh -l myName -p 22 hostname

1
finalmente funciona! deve haver um bug com a sintaxessh myName@hostname:myPort
Edoardo

10

Se você precisar acessar sua VPN de qualquer lugar do mundo, precisará registrar um nome de domínio e apontar para o endereço IP público do seu gateway de rede / VPN. Você também pode usar um serviço DNS dinâmico para conectar um nome de host ao seu IP público.

Se você só precisa ssh do seu Mac para o seu Raspberry dentro da rede local , faça o seguinte: No seu Mac, edite /etc/hosts. Supondo que o Raspberry tenha nome de host "berry" e ip "172.16.0.100", adicione uma linha:

# ip           hostname
172.16.0.100   berry

Agora: ssh user@berrydeve funcionar.


Além do acima, usei o "windows-cmd" para conhecer o ip do meu servidor-url. Eu fiz "ping url", para obter o IP. e, portanto, adicionou o par IP e URL no "/ etc / hosts". Funciona perfeitamente lá depois (git pull, etc.)!
parasrish

9

Eu tive o mesmo problema, que resolvi adicionando um .local ao nome do host, ala ssh user@hostname.local


Isso fez por mim. ping $(hostname)estava trabalhando, mas precisa fazer ssh $(hostname).local. Mac geralmente é grande .. mas quando ela suga, realmente ..
javadba

Eu tenho um outro problema: hadoopprecisa fazer ssh user@hostnamee não posso simplesmente adicionar .localmanualmente. Estou preso
javadba

A adição .localfez isso por mim no Ubuntu 19.10.
prkos 26/02

5

No meu caso, eu estava tentando ssh assim

ssh pedro@192.168.2.179:22 

quando o formato correto é:

ssh pedro@192.168.2.179 -p 22 

1
Uau-- ficou preso para sempre com o encaminhamento de porta! Este é o texto sagrado.
frozenOne

4

Se o seu comando for:

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

Você também enfrentará o mesmo erro

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

quando você perde a opção -i /path/to/pemfile de ssh

Portanto, o comando deve ser:

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

Eu não usar as opções pemfile mas ainda conectado usandossh -p xxxx user@hostname
Yoku

4

Eu precisava me conectar ao servidor Amazon remoto

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

Eu estava recebendo o seguinte erro.

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

Solução para Mac OSX

Executar ping no host resolveu o problema. Estou usando o Mac OSX Seirra.

ping hostname.com

Agora problema resolvido. Capaz de conectar-se ao servidor.

Nota : Eu tentei esta solução também. Mas não deu certo. Em seguida, pingresolvia o problema.


3

Eu tive o mesmo problema: O endereço mostrado em Preferências -> Compartilhamento -> Login Remoto não funcionou e recebi um '... nodename nem servname fornecido, ou não conhecido'. No entanto, quando editei manualmente as configurações (em Preferências -> Compartilhamento -> Login Remoto -> editar) e habilitei "Usar nome de host global dinâmico", de repente funcionou.

insira a descrição da imagem aqui

insira a descrição da imagem aqui


3

Parece que alguns aplicativos não lêem o link simbólico /etc/hosts(pelo menos no macOS), é necessário vinculá-lo.

ln /path/to/hosts_file /etc/hosts


2

Isso estava acontecendo comigo ao tentar acessar o Github. O problema é que eu tinha o hábito de fazer:

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

Mas, se você está tendo esse erro da pergunta, removendo ssh:\\ pode resolver o problema. Isso resolveu para mim!

Observe que você precisará fazer um git remote remove <xyz>e adicionar novamente o URL remoto sem ssh:\\.


1
Você realmente usou ssh:\\e não ssh://?
Radon Rosborough

@RadonRosborough Isso foi há um tempo atrás agora ... então, eu não tenho certeza. Pode ter! :)
Monkpit 08/08/19

1

Para mim, o problema foi um erro de digitação no meu ~/.ssh/configarquivo. Eu tinha:

Host host1:
  HostName 10.10.1.1
  User jlyonsmith

O problema foi o :depois do host1- não deveria estar lá. sshnão dá avisos de erros de digitação no ~/.ssh/configarquivo. Quando não consegue encontrar host1, procura a máquina localmente, não consegue encontrá-la e imprime a mensagem de erro enigmática.


0

Tente isso, considerando as portas permitidas. Armazene seu .pemarquivo em sua Documentspasta, por exemplo.

Para obter acesso agora, tudo o que você precisa fazer é cd [directory]mover o arquivo para o diretório do arquivo alocado. Você pode digitar primeiro ls, para listar o conteúdo do diretório em que está atualmente:

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

Eu recebi esse erro usando um arquivo de inventário .yml em ansible que não foi formatado corretamente. Para vários hosts em um grupo, cada nome de host precisa terminar em dois pontos ":". Caso contrário, o ansible executa os nomes dos hosts juntos e produz esse erro ssh.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.