Por que o prompt de “senha” do ssh demora tanto para aparecer?

84

Quando tento ssh , a solicitação de senha demora muito (quase dois minutos) para aparecer.

Por que isso acontece?

    
por Neuquino 22.01.2013 / 21:55

8 respostas

133

Existem várias coisas que podem dar errado. Adicione -vvv para 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 de um cliente para o qual o tempo de espera de pesquisas reversas de DNS. (Uma "pesquisa inversa de DNS" significa voltar 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 invasão de entradas de log, mas a configuração padrão faz isso de qualquer maneira.) Para desativar as pesquisas reversas de DNS, adicione UseDNS no a /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 é GSSAPI tempo limite de autenticação. Se você não sabe o que é isso, provavelmente não está confiando nisso; você pode desativá-lo adicionando a linha GSSAPIAuthentication no a /etc/ssh/ssh_config ou ~/.ssh/config (que está no lado do cliente).

    
por Gilles 22.01.2013 / 22:15
12

Deixe a hora do 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 que demorou cerca de 45 segundos para fazer o login -------- MUITO LENTO

Depois de fazer o login como root, edite o arquivo sshd_config e altere a entrada UseDNS como abaixo. Aqui estou usando o 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

Deixe-nos cronometrar o processo de login e veja 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 que demorou agora 6 segundos, o tempo para eu digitar a senha.

    
por Mamadou Lamine Diatta 04.10.2013 / 14:39
4

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

Para consertar isso, você precisa mudar esta linha em /etc/nsswitch.conf :

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

E altere para este:

hosts:          files dns
    
por Neuquino 22.01.2013 / 21:55
3

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, e eu não sei qual é a causa do problema.

    
por Candid Dauth 22.04.2016 / 19:01
1

A saída de depuração para 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 um falso servidor DNS no arquivo /etc/resolv.conf . Substituí-lo por um servidor DNS atual resolveu o problema.

    
por ErikWeitenberg 25.07.2014 / 18:29
0

Para mim, estava mudando o DNS do sistema para 127.0.0.1, antes disso era um host não existente.

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
    
O
por Alireza 07.12.2013 / 06:51
0

Eu não sei tanto sobre o ambiente do pôster quanto gostaria, mas para outros com um problema semelhante, pode ser um problema com sssd , que usamos para vincular o ldap mojo.

Isso acontece comigo:

$ time ssh server.example.com

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

Eu tenho que ter acesso ao servidor (no meu caso, através do console), então faça um:

service restart sssd

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

    
por KurtB 15.09.2014 / 20:36
0

Eu poderia resolver o problema prompt de senha lenta via ssh marcando Habilitar retransmissão de DNS nas configurações do DHCP no meu roteador dlink. Depois as conexões com o SSH funcionaram dentro de um segundo.

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

A configuração padrão encaminha todas as solicitações de DNS para o provedor. Foi lento, embora eu estava se conectando com ssh pi@10.0.0.103. Uma dica para a solução foi uma entrada em /etc/resolv.conf "search upc.at" que é fornecida via dhcp.

O manual do dlink diz:

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 um lançamento do dhcp no cliente e no servidor, a conexão via SSH foi rápida novamente. HTH.

    
por domih 19.06.2015 / 21:11

Tags