Por que o prompt "senha" do ssh demora tanto para aparecer?

94

Quando tento ssh, o prompt da senha leva muito tempo (quase dois minutos) para aparecer.

Por que isso acontece?

Neuquino
fonte
1
A resposta de Gilles deve ser a resposta explicada nos comentários, na verdade.
precisa saber é

Respostas:

143

Existem várias coisas que podem dar errado. Adicione -vvvpara fazer com que o ssh imprima um rastreamento detalhado do que está fazendo e veja onde está pausando.

O problema pode estar no cliente ou no servidor.

Um problema comum no servidor é se você está se conectando a partir de um cliente para o qual as pesquisas reversas de DNS atingem o tempo limite. (Uma "pesquisa de DNS reversa" significa retornar do endereço IP da máquina cliente para um nome de host. Não é realmente útil para segurança, apenas um pouco útil para diagnosticar tentativas de interrupção nas entradas de log, mas a configuração padrão o faz de qualquer maneira.) Para desativar as pesquisas reversas de DNS, adicione UseDNS noa /etc/ssh/sshd_config(você precisa ser root no servidor; lembre-se de reiniciar o serviço SSH posteriormente).

Outra coisa que pode dar errado é o tempo limite da autenticação GSSAPI . Se você não sabe o que é isso, provavelmente não está confiando nisso; você pode desativá-lo adicionando a linha GSSAPIAuthentication noa /etc/ssh/ssh_configou ~/.ssh/config(localizada no lado do cliente).

Gilles
fonte
8
Para mim, foi o problema de autenticação do GSSAPIA. Obrigado.
RajaRaviVarma 18/10
14
A pesquisa reversa de DNS foi o meu problema.
trinth
2
O DNS reverso também foi o culpado para mim e o UseDNS nocorrigiu como um encanto. Estou em uma rede interna sem servidor DNS para lidar com pesquisas reversas de IPs internos.
Jordan Mack
1
Existem implicações de segurança para desativar GSSAPIAuthentication? (pesquisando por 15 minutos não lançar luz sobre isso)
Alexander Malakhov
3
@AlexanderMalakhov Se você está contando com isso para fazer login, ficará bloqueado se desativá-lo. Fora isso, não. E se você estiver usando o GSSAPI, você saberia - teria que configurar algum serviço baseado em GSSAPI na sua rede.
Gilles
13

Reserve um tempo para o processo de login e veja quanto tempo levará:

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout
Connection to ISSLABNTL01 closed.

real    0m45.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

Veja acima, demorou cerca de 45 segundos para entrar -------- MUITO LENTO

Depois de efetuar o login como root, edite o arquivo sshd_config e altere a entrada UseDNS como abaixo. Aqui estou usando sed em vez de editar o arquivo.

[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
#UseDNS yes

[root@ISSLABNTL01 ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
UseDNS no

[root@ISSLABNTL01 ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@ISSLABNTL01 ~]# exit

Vamos agendar o processo de login e ver agora quanto tempo levará.

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout

Connection to ISSLABNTL01 closed.

real    0m6.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

Veja, demorou 6 segundos, o tempo para eu digitar a senha.

Mamadou Lamine Diatta
fonte
fantástico .. chegou a hora .. o useDNS não consertou para mim .. eu tinha autenticação com senha e o atraso era para que a senha entrasse no prompt para aparecer .. eu esperei que aparecesse então ctrl-c então o 'time 'não me incluiu digitando a senha.
barlop
Posso confirmar UseDNS nono /etc/ssh/sshd_configmeu problema corrigido
UseDNS noResolvido
Pandurang Patil /
@PandurangPatil Opção de configuração ruim: usedns
Yusef Mohamadi
@ zhilevan Você também deve mencionar por que a configuração é ruim. Isso vai ajudar a entender por que é ruim de configuração
Pandurang Patil
4

É algo que dá errado na instalação do Ubuntu.

Para corrigi-lo, você deve alterar esta linha no /etc/nsswitch.conf :

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

E mude para este:

hosts:          files dns
Neuquino
fonte
3
A configuração do Ubuntu não está errada. Em alguns casos (redes domésticas sem servidores DNS centrais), é a coisa certa. Em outras (redes onde o mDNS solicita tempo limite), é ruim.
Gilles
o [NOTFOUND = return] não deve estar lá.
Neuquino
4
@ Neuquino Deveria estar lá. Está lá por uma razão que você não entende, aparentemente. Brincar com nsswitch.confisso é pedir problemas e não fornecer uma solução geral para diminuir o SSH.
precisa saber é
Isso me parece a única solução que funciona
linello
4

No meu caso, o problema pode ser resolvido reiniciando systemd-logind:

systemctl restart systemd-logind

Isso é mencionado no Serverfault .

Eu tenho que fazer isso regularmente, porém, e não sei qual é a causa raiz do problema.

Candid Dauth
fonte
1

A saída de depuração do ssh no meu caso parou por 30 segundos enquanto estava 'conectando'. A solução acabou relacionada às configurações de DNS no meu sistema local. Uma configuração de rede anterior havia deixado para trás um servidor DNS falso no /etc/resolv.confarquivo. Substituí-lo por um servidor DNS atual corrigiu o problema.

ErikWeitenberg
fonte
0

Para mim, estava mudando o DNS do sistema para 127.0.0.1, antes disso, havia um host inexistente.

nano /etc/resolv.conf

E escreva o seguinte

domain localdomain
search localdomain
(Removed this line) ===> nameserver 10.0.0.1
(Added this line) ===> nameserver 127.0.0.1
Alireza
fonte
Para mim, este arquivo parecia ser /etc/resolv.conf (no e) #
Shadow
0

Eu não sei muito sobre o ambiente do pôster como gostaria, mas para outros com um problema semelhante, pode ser um problema com o sssdqual usamos para amarrar o ldap mojo.

Isso acontece comigo:

$ time ssh server.example.com

real  2m0.018s
user  0m0.006s
sys   0m0.004s

Eu tenho que obter acesso ao servidor (no meu caso através do console) e depois fazer um:

service restart sssd

Depois disso, as coisas simplesmente funcionam. Não tive tempo para depurar a causa raiz, mas esse bandaid funciona para mim.

KurtB
fonte
0

Eu poderia resolver o prompt da senha lenta via ssh - issue, marcando Ativar retransmissão de DNS nas configurações de DHCP no meu roteador dlink. Posteriormente, as conexões com o SSH funcionaram em um segundo.

Network Settings -> Router Settings -> Enable DNS Relay [x]

A configuração padrão encaminha todas as solicitações de DNS ao provedor. Estava lento, embora eu estivesse conectando com ssh [email protected]. Uma dica para a solução foi uma entrada em /etc/resolv.conf "search upc.at", que é fornecida via dhcp.

O manual do dlink declara:

When DNS Relay is enabled, DHCP clients of the router will be assigned 
the router's LAN IP address as their DNS server. All DNS requests that 
the router receives will be forwarded to your ISPs DNS servers. 
When DNS relay is disabled, all DHCP clients of the router will 
be assigned the ISP's DNS server.

Após o lançamento do dhcp no cliente e no servidor, a conexão via SSH foi rápida novamente. HTH.

domih
fonte