SSH lento na sessão inicial

8

Iniciar um shell interativo por SSH é lento para um dos meus servidores. Tudo o que leva a ele, incluindo a criptografia de negociação, é rápido, mas é interrompido por 45 segundos. Depois disso, termina e eu tenho uma concha. Como identifico o que está pendurado? Tentei limpar o ambiente e desabilitar todo o encaminhamento, caso isso estivesse diminuindo a velocidade, mas não ajudou. Aqui está o meu comando de teste:

env -i ssh -x -a -vvv server

e aqui está a saída do SSH:

debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
*(hangs for 45 seconds here)*
debug3: Wrote 128 bytes for a total of 3191
debug2: callback start
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.
penguin359
fonte
@forcefsck Não acho que esse post seja relevante. Minha conexão inicial é rápida, as chaves são trocadas, a autenticação é rápida, sem espera no prompt de senha, como no post acima. Além disso, todo o DNS para frente e para trás deve estar concluído nesse ponto, tenho certeza. Além disso, esse problema não é intermitente, como no post acima, é sempre. A saída detalhada que publiquei acima começa logo após a mensagem de autenticação bem-sucedida. Eu acho que é mais do tipo bash ou um módulo de sessão pam demorando para iniciar.
Penguin359
Também existe um atraso para sessões não interativas? Existe um atraso quando você inicia uma segunda conexão enquanto uma está ativa? Qual método de autenticação você usa? Seu diretório pessoal é montado automaticamente no login de alguma forma (remota ou criptografada)? Um módulo pam pode ser o culprint, o que você tem /etc/pam.d/sshd(ou como é chamado no seu sistema)? Se você tiver acesso aos logs do servidor, há algo relevante?
Gilles 'SO- stop be evil'
@ Gilles Sim, parece afetar os comandos remotos, scp e sftp. Se você quer dizer duas conexões SSH separadas, ambas são lentas. Se você quer dizer iniciar uma segunda sessão pelo mesmo soquete de controle, tentei isso e é rápido, mas recebo um aviso sobre a falha do xauth ao bloquear .Xauthority. Eu uso qualquer coisa, desde teclado interativo, chave pública, baseada em host, até gssapi-keyex. A autenticação é sempre rápida, independentemente, embora a velocidade varie um pouco. Meu diretório inicial é local para o servidor e não criptografado. O PAM é essencialmente o padrão do Ubuntu + pam_krb5.so instalado.
amigos estão dizendo sobre penguin359
Você diz "lento para um dos meus servidores". Ele se comporta normalmente quando se desloca para outras máquinas? E isso é da sua máquina doméstica, na qual você está conectado localmente? O que é o sistema operacional local e remoto (incluindo a versão)? Além disso, o sshing do servidor para a sua máquina doméstica é normal? O sshing como outro usuário (local e remoto) faz alguma diferença?
Faheem Mitha 03/04

Respostas:

6

Em um caso muito semelhante, foi um dos scripts update-motd.

O seguinte fez o truque:

sudo rm /etc/update-motd.d/90-updates-available

Aqui está um pequeno ajudante que mede o tempo de cada script:

$ for f in /etc/update-motd.d/*;do echo $f;time $f;done
/etc/update-motd.d/00-header            0m0.007s
/etc/update-motd.d/10-help-text         0m0.005s
/etc/update-motd.d/90-updates-available 0m49.163s
/etc/update-motd.d/91-release-upgrade   0m0.152s
/etc/update-motd.d/98-fsck-at-reboot    0m0.015s
/etc/update-motd.d/98-reboot-required   0m0.003s
(output reduced to the relevant parts)
Daniel Alder
fonte
Obrigado! A maioria das pessoas aconselha a desativar o DNS, mas meu login ssh ainda está sendo lento. Comecei a investigar o processo de login e sua resposta me indicou /etc/update-motd.d/50-landscape-sysinfo, que parecia ser lento.
Rennex
1
isso é realmente útil - para mim o assassino era 50-landscape-sysinfo. E, fyi, você pode simplesmente chmod -x /etc/update-motd.d/90-updates-availableimpedir que seja executado no login, em vez de removê-lo completamente.
Billynoah
3

O pam_krb5.so foi configurado para adquirir tokens do AFS para um shell inexistente que teve um tempo limite de 30 segundos interrompendo qualquer autenticação usando esse módulo, não apenas o SSH. Foi removido isso e a autenticação acontece muito mais rapidamente.

penguin359
fonte
2

Se o servidor ssh tiver o mapeamento DNS reverso ativado, pode ser a causa do atraso, procure VerifyReverseMappingno /etc/ssh/sshd_configarquivo do servidor.

Frederik Deweerdt
fonte
1
Eu pensei que o mapeamento DNS reverso acontecesse antes que a autenticação tivesse êxito, mas testarei isso.
Penguin359
Eu acho que você quer dizer UseDNS, recebi um aviso depreciado no VerifyReverseMapping. Independentemente disso, defini ambos como não e não ajudou. Eu cuido para garantir que meu mapeamento reverso esteja correto e o host possa mapear o nome do host do meu cliente para um registro A e vice-versa sem nenhum problema.
Penguin359
0

Eu tive o mesmo problema, mas aparentemente causado por outra coisa. A solução:

/etc/ssh/sshd_config:
#UsePAM yes

e:

sudo /etc/init.d/ssh stop;sudo /etc/init.d/ssh start;
Ole Tange
fonte