O servidor SSH não está funcionando (respawns até parar)

12

Eu tenho um Ubuntu Server 10.04.1 em execução. Quando tentei logar no servidor via ssh, não consegui. Em vez disso, recebi connection refused error. Tentei fazer ping na máquina e recebi resposta! Então, a razão clara é que o daemon SSH está parado.

Após a reinicialização, consegui fazer o login no meu servidor via ssh. Depois de algum tempo, examinei meus registros /var/log/syslog e achei os seguintes registros:

Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2465) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2469) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2473) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2477) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2481) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2485) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2489) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2493) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2497) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2501) terminated with status 255
Jan 16 10:57:09 myserver init: ssh respawning too fast, stopped

Eu procurei por um problema / solução similar. Algumas pessoas disseram que isso é causado pelo daemon SSH tentando iniciar antes da rede e sugeriram alterar ListenAddress em /etc/ssh/sshd_config para 0.0.0.0 . Eu acho que essa não é a causa no meu caso, porque meu problema ocorre depois que o sistema está funcionando.

Alguma ideia do que está causando isso? Este é o Ubuntu Server e deve ser executado e acessado remotamente usando o SSH.

ATUALIZAÇÃO:

Aqui está o trecho de log que encontrei em /var/log/auth.log .

Jan 16 10:56:38 myserver sudo:     user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/bin/vim /etc/ssh/sshd_config
Jan 16 10:57:09 myserver sudo:     user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/etc/init.d/ssh reload
Jan 16 10:57:09 myserver sshd[1465]: Received SIGHUP; restarting.
Jan 16 10:57:09 myserver sshd[2461]: Server listening on 0.0.0.0 port 22.
Jan 16 10:57:09 myserver sshd[2465]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2465]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2469]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2469]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2473]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2473]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2477]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2477]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2481]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2481]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2485]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2485]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2489]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2489]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2493]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2493]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2497]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2497]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2501]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2501]: fatal: Cannot bind any address.

Parece que esse erro começou a aparecer depois que eu recarreguei o daemon SSH. Devo evitar usar ssh reload e usar ssh restart ?

    
por Khaled 16.01.2011 / 11:56

7 respostas

7

Você deve verificar o que aconteceu apenas antes de o SSH começar a debater-se em syslog . Se o subsistema de rede morreu, isso poderia explicar por que sshd começou a falhar.

Também verifico /var/log/auth.log . É o log de sshd e pode fornecer uma mensagem de erro melhor.

    
por Oli 16.01.2011 / 12:58
16

Acabei de ter o mesmo problema na minha caixa 12.04. Ou seja mesmos sintomas. Infelizmente, sempre acontecia quando eu introduzia a cláusula ListenAddress com os endereços inet e inet6 em sshd_config . Em suma, isso parece ser um sintoma de um sshd_config mal formado - embora os arquivos de log não digam nada disso.

Solução de problemas sshd

O que eu acho geralmente muito útil em tais casos é iniciar sshd sem permitir que ele seja daemonizado. O problema no meu caso foi que nem syslog nem auth.log mostraram algo significativo.

Quando eu comecei no terminal, recebi:

# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.

Muito melhor! Esta mensagem de erro permitiu-me ver o que está errado e corrigi-lo. Nenhum dos arquivos de log continha esta saída.

NB: pelo menos no Ubuntu o $(which sshd) é o melhor método para satisfazer a exigência de sshd de um caminho absoluto. Caso contrário, você receberá o seguinte erro: sshd re-exec requires execution with an absolute path . O -p 10222 faz com que sshd ouça nessa porta alternativa, sobrescrevendo o arquivo de configuração - isso é para que ele não entre em conflito com as instâncias sshd potencialmente em execução. Certifique-se de escolher uma porta livre aqui.

Esse método me ajudou muitas vezes a encontrar problemas, seja problemas de autenticação ou outros tipos. Para obter uma saída realmente detalhada para stdout , use $(which sshd) -Ddddp 10222 (observe o dd adicionado para aumentar a verbosidade). Para mais bondade de depuração, verifique man sshd .

    
por 0xC0000022L 19.03.2013 / 03:14
4

Este parece ser o resultado do bug # 687535, que foi corrigido recentemente em natty, e foi enviado para ambos, maverick e lúcido, como uma atualização proposta.

link

Eu encorajaria todo mundo a ir até lá, testar o caso de teste (pesquisar por TEST CASE) e postar seus resultados antes e depois de instalar a correção proposta. Isso ajudará a equipe do SRU a decidir que a verificação foi feita e lançá-la como atualização.

    
por SpamapS 22.01.2011 / 00:38
2

Em /etc/ssh/sshd_config , certifique-se de que todas as opções yes e no estão em letras minúsculas. Por exemplo, se você definir, PermitRootLogin No , ssh não será iniciado. Na verdade, tem que ser PermitRootLogin no .

    
por Flow 12.09.2012 / 13:00
1

Eu tive um problema semelhante com uma imagem do Ubuntu 11.10 em um Linode após a reinicialização. o serviço ssh produziria no syslog:

Mar 18 06:31:33 servername kernel: init: ssh main process ended, respawning
Mar 18 06:31:33 servername kernel: init: ssh main process (3419) terminated with status 255
Mar 18 06:31:33 servername kernel: init: ssh main process ended, respawning
Mar 18 06:31:33 servername kernel: init: ssh main process (3422) terminated with status 255
Mar 18 06:31:33 servername kernel: init: ssh respawning too fast, stopped

É uma caixa de teste, e ela tinha cerca de 60 dias de atividade, então, em algum lugar, instalei algo que foi anexado à parte inferior do sshd_config:

ClientAliveInterval 60
ClientCountAliveMax 60

Comentando essas linhas permitiram o ssh começar.

    
por joe 18.03.2012 / 07:47
0

O Ubuntu ssh não inicia e o syslog é processado "O processo principal do init: ssh (2044) terminou com status 255"

/ usr / sbin / sshd -DDP 10222

Claro que funcionou para mim determinar o erro de linha sshd_config

    
por user652460 09.02.2017 / 01:52
-1

tem o mesmo problema, a solução superior não funciona, mas tenho uma solução para isso.

root@imt:~# sshd
sshd re-exec requires execution with an absolute path
ssh localhost
ssh: connect to host localhost port 22: Network is unreachable

O caminho está ok como por documento, então eu corro manualmente sshd.

root@imt:~# /usr/sbin/sshd 
/var/run/sshd must be owned by root and not group or world-writable

A permissão / var / run / sshd é.

root@imt:~# ls -ld /var/run/sshd
drwsrwsrwt 2 root root 40 Jan  5 12:58 /var/run/sshd

root@imt:~# chmod 755 /var/run/sshd

então está tudo bem. execute ssh localhost e verifique.

root@imt:~# ssh localhost 
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 64:93:fd:ab:4c:f9:7b:8a:86:60:22:f7:56:fa:ea:cc.
Are you sure you want to continue connecting (yes/no)? yes
    
por Vicky Dhindsa 11.01.2016 / 09:33