Tempo de espera longo no login

20

Quando eu faço login no meu servidor, recebo isso:

No mail.
Last login: Fri Nov  5 14:22:45 2010...

então devo esperar por 5 segundos e depois pronto ...

wolfy@ubuntu-server:~$

Este tempo de espera é normal ou devo fazer algo para "reparar" isso?

    
por Wolfy 05.11.2010 / 14:57

10 respostas

18

Isso geralmente é o resultado de pam_motd gerar novamente o arquivo /etc/motd . Você pode verificar os scripts individuais em /etc/update-motd.d para ver se algo está muito lento.

    
por Kees Cook 05.11.2010 / 21:33
13

Eu tenho os mesmos problemas com 10.04 (LTS).

Quando executo meu ssh com -vvv , ele morre em:

debug1: Entering interactive session.

Estendendo esta resposta.

Consegui reinicializar o servidor remotamente e habilitei o loggin DEBUG. Também aproveite esta oportunidade para permanecer logado e observar outras tentativas de login. Aqui está o que acontece. O cliente se conecta e é autorizado e trava na mensagem acima.

No servidor, a lista de processos mostra isso:

root       835  0.0  0.1  11476  3348 ?        Ss   13:39   0:00 sshd: till [priv]
root       840  0.0  0.0   4804  1124 ?        S    13:39   0:00 /bin/sh -c /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/run-parts --lsbsysinit /etc/update-motd.d
root       841  0.0  0.0   4728  1108 ?        S    13:39   0:00 /bin/run-parts --lsbsysinit /etc/update-motd.d
root       854  0.0  0.0   4804  1144 ?        S    13:39   0:00 /bin/sh /etc/update-motd.d/50-landscape-sysinfo
root       861  0.2  0.5  15388  9248 ?        S    13:39   0:00 /usr/bin/python /usr/bin/landscape-sysinfo
root       863  0.0  0.0      0     0 ?        Z    13:39   0:00 [who] <defunct>

Eu posso executar /usr/bin/python /usr/bin/landscape-sysinfo bem enquanto estou logado, mas por alguma razão, não consigo entender por que isso atrasa o processo de login. Quando eu mato o processo, o login continua no prompt e é bem sucedido .

Isso não parece ser um problema ssh (d), está mais relacionado a update-motd e paisagem. Desinstalei o pacote update-motd , mas parece que o diretório /etc/update-motd persiste e os scripts ainda são executados - fazendo com que o processo seja interrompido.

Depurando ainda mais:

Acontece que o diretório /etc/update-motd.d/ realmente não pertence ao pacote update-motd , parece ser acionado pela autenticação pam através do sshd.

Parece que eu acertei!

Desativado pam_motd nos seguintes arquivos:

  • /etc/pam.d/sshd
  • /etc/pam.d/login

Mais uma:

apt-get purge landscape-client landscape-common

Estes parecem ajudar até certo ponto. No entanto, apenas remove o script incorreto em /etc/update-motd.d/ e nem exclui todos os scripts nesse diretório nem elimina pam_motd .

Em geral, não encontrei nenhuma maneira de desabilitar pam_motd completamente, porque parece que, o que quer que isso faça - isso retarda o processo de login até certo ponto. Não bloqueia como o script em landscape-common , mas é mais lento.

Relatório de erros sobre este problema:

Soluções alternativas de lá:

You are right that the ability to log in is more important than presenting a motd. If this behavior is a problem for you, there are several ways that you can disable it:

  • comment out the 'pam_motd' line in /etc/pam.d/sshd if you don't want to display a motd.
  • delete the contents of the /etc/update-motd.d directory.
  • chmod -x the scripts in /etc/update-motd.d that you don't want to run.
    
por Till 11.07.2012 / 15:20
10

Encontrei a solução finalmente:

  1. sudo apt-get remove landscape-client landscape-common
  2. linha de comentários %código% em session optional pam_motd.so e /etc/pam.d/login

Agora, o login é INSTANTÂNEO!

    
por BarsMonster 22.03.2011 / 06:12
4

De sua descrição, soa mais como um problema de rede. Para diagnosticar:

  • Execute ssh com o parâmetro -v para ser detalhado.
  • Tente executar um ping para o servidor SSH ao qual você está se conectando e veja se isso também é interrompido ao mesmo tempo.
  • Tente outro tipo de transferência para o mesmo servidor. Por exemplo, wget com o parâmetro --limit-rate para buscar um arquivo através de HTTP e tê-lo demorado o suficiente para acionar o comportamento "pendente".
  • Veja se ele é interrompido apenas quando ocioso ou se você está fazendo algo no momento. Se ele ficar paralisado enquanto ocioso, o diagnóstico -v provavelmente lhe dirá, caso em que o conselho para usar o keepalive pode ajudar (ssh -o "TCPKeepAlive yes")

Se você puder conectar OK ao Windows e ao PuTTY, provavelmente não será um problema do lado do servidor.

    
por roadmr 08.12.2011 / 05:49
2

Eu acho que quando você faz o login, o ubuntu executa um ou mais desses arquivos:

/etc/bash.bashrc
~/.bash_profile
~/.bashrc

Você pode ver o que há neles e talvez até tentar executá-los para ver o que está demorando tanto.

    
por Savvas Radevic 05.11.2010 / 16:30
2

Na minha experiência limitada, quando putty funciona, mas Linux, Ubuntu, neste caso, não, geralmente é manter vivo. Problemas de rede ou servidor afetariam o sistema operacional do cliente.

Você pode usar a opção keep alive acima na linha de comando, mas é meio tedioso digitar.

Mais fácil de editar alguns arquivos de configuração.

Se você tiver root access e desejar ativá-lo automaticamente para todos os usuários, edite /etc/ssh/ssh_config , adicione

KeepAlive yes
ServerAliveInterval 120

Se você não tiver acesso root ou ativá-lo para um único usuário, edite ~/.ssh/config e adicione as mesmas duas linhas.

    
por Panther 08.12.2011 / 06:48
2

Se PermitEmptyPassword e UsePAM estiverem ativados, o servidor OpenSSH sempre tentará autenticação com uma senha nula, o que é um sinal de que nenhuma autenticação é necessária para a conta em questão. Ele faz isso assim que o processo de autenticação começa, em ambos os protocolos, e não em resposta a qualquer solicitação de autenticação "real" do cliente. O OpenSSH permitirá somente tal acesso se o sshd_config flag PermitEmptyPassword está definido; infelizmente, a maneira como o código é escrito, ele executa o teste de senha em qualquer caso, e assim mostra até PAM como uma falha.

Então: desative PermitEmptyPassword ou UsePAM , mas lembre-se: sem o PAM, você não conseguirá fazer o login sem uma chave.

Referência: link

    
por Alessandro Pezzato 01.10.2012 / 22:53
0

Verifique os registros do sistema em / var / log, você pode encontrar uma mensagem com o erro / tempo limite relacionado.

    
por João Pinto 05.11.2010 / 15:14
0

Se você também tiver tempo, espere antes

Edite o /etc/sshd_config

e defina (ou adicione)

UseDNS no

ou adicione seu ip em /etc/hosts se for um local estático

    
por user11187 21.02.2011 / 00:09
0

Você pode querer tentar monitorar os processos em execução enquanto faz o login no servidor a partir de uma conexão já com sessão iniciada (ou um console diferente). Há uma chance de identificar quais processos são os mais ativos ou que usam mais CPU naquele momento.

Abaixo está um método possível:

  1. Tente fazer login em outro console.
  2. Execute top para ver o que acontece.
  3. Faça login no primeiro console.

Por favor, note que se o atraso não for causado por algum cálculo intensivo da CPU, você não encontrará nada fora do lugar. Neste caso, o problema pode estar ligado a E / S (esperando por alguma leitura / gravação de disco ou resposta de rede).

    
por ido 05.11.2010 / 15:17