serviço sshd falha ao iniciar

27

Não sei por que ele não está iniciando ou por que está me impedindo de conectar, recebo este erro:

sshd.service - OpenSSH Daemon
    Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: failed (Result: start-limit) since Wed 2013-09-11 08:45:13 BST; 1min 21s ago
  Process: 701 ExecStart=/usr/bin/sshd -D (code=exited, status=1/FAILURE)

Sep 11 08:45:13 alarmpi systemd[1]: sshd.service: main process exited, code=exited, status=1/FAILURE
Sep 11 08:45:13 alarmpi systemd[1]: Unit sshd.service entered failed state.
Sep 11 08:45:13 alarmpi systemd[1]: sshd.service holdoff time over, scheduling restart.
Sep 11 08:45:13 alarmpi systemd[1]: Stopping OpenSSH Daemon...
Sep 11 08:45:13 alarmpi systemd[1]: Starting OpenSSH Daemon...
Sep 11 08:45:13 alarmpi systemd[1]: sshd.service start request repeated too quickly,    refusing to start.
Sep 11 08:45:13 alarmpi systemd[1]: Failed to start OpenSSH Daemon.
Sep 11 08:45:13 alarmpi systemd[1]: Unit sshd.service entered failed state.

Seguindo o conselho de #amrith, executei o sshd -t, indicando que a chave não havia sido gerada. Eu o gerei usando ssh-keygen -A , seguindo os conselhos deste fórum. A execução do status systemctl mostrou que ainda não estou executando o Daemon. Anexei o erro abaixo, infelizmente não sei ho. Executar novamente o sshd -t não dá mensagens agora.

sshd.service - OpenSSH Daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: inactive (dead)

Sep 11 12:04:42 alarmpi systemd[1]: Started OpenSSH Daemon.
Sep 11 12:04:42 alarmpi sshd[289]: fatal: Cannot bind any address.
Sep 11 12:04:42 alarmpi systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a
Sep 11 12:04:42 alarmpi systemd[1]: Unit sshd.service entered failed state.
Sep 11 12:04:42 alarmpi systemd[1]: sshd.service holdoff time over, scheduling restart.
Sep 11 12:04:42 alarmpi systemd[1]: Stopping OpenSSH Daemon...
Sep 11 12:04:42 alarmpi systemd[1]: Starting OpenSSH Daemon...
Sep 11 12:04:42 alarmpi systemd[1]: sshd.service start request repeated too quickly, refusing to start.
Sep 11 12:04:42 alarmpi systemd[1]: Failed to start OpenSSH Daemon.
Sep 11 12:04:42 alarmpi systemd[1]: Unit sshd.service entered failed state.
aCoolBean
fonte

Respostas:

31

Tente sshd -t (o modo de teste sshd). Isso pode indicar um motivo para a falha.

Consulte a documentação do modo de teste aqui .

amrith
fonte
15

O problema, no nosso caso, foi o uso de uma porta não padrão para SSH. O SELinux pode restringir quais portas podem ser usadas por um serviço. Aparentemente, às vezes fica confuso e esquece que tínhamos permitido essa porta?

Tivemos que emitir o seguinte comando para adicionar nossa porta (22222) à lista de portas disponíveis

semanage port -a -t ssh_port_t -p tcp 22222

Referência: http://sharadchhetri.com/2014/10/15/centos-7-rhel-7-change-openssh-port-number-selinux-enabled/

Tommy McNeely
fonte
8

Bem, se você alterar o número da porta SSH, precisará fazer mais algumas coisas no CentOS 7.

Alterar arquivo ssdh_config de edição de porta SSH

vi /etc/ssh/sshd_config

Por exemplo, mude para: Porta 2323

O SELINUX permite apenas a porta 22 para ssh. Adicionar novo contexto de porta 2323. Se você não tiver instalado, faça o seguinte

yum -y install policycoreutils-python
semanage port -a -t ssh_port_t -p tcp 2323

Verifique o contexto da porta para o ssh

semanage port -l | grep ssh

Reinicie o serviço SSHD

systemctl restart sshd.service

Adicione a porta ao firewall

firewall-cmd --permanent --zone=public --add-port=2323/tcp

Recarregar firewall

firewall-cmd --reload

Verifique a audição

ss -tnlp|grep ssh

Tente conectar novamente através do ssh

ssh root@<ipaddr> -p 2323
Slipstream
fonte
3

Eu também tive esse problema, mas o resolvi. Minha configuração está abaixo.

PermitRootLogin no
port 22
MaxAuthTries 3
MaxSessions 2
AllowUsers ravikanth
AddressFamily any
ListenAddress 192.168.1.23

O serviço falhou ao iniciar, por isso acabei de comentar a última linha ( #ListenAddress 192.168.1.23) e meu servidor foi iniciado com êxito.

Nota: Desliguei o firewall (iptables) e o SELinux.

Ravikanth
fonte
2

Você pode tentar usar a seguinte configuração:

RestartSec=5s

Isso forçaria seu aplicativo a dormir por 5 segundos antes de uma tentativa de reinicialização. Obviamente, você pode variar o número de configurações.

Veja aqui para detalhes:

Boris Epstein
fonte
Votei positivamente nesta resposta, porque ela contém informações úteis sobre como corrigir o problema quando o problema está no systemd e não no serviço real (sshd no caso do OP). Eu tive serviços com restart = sempre falham e não são reiniciados várias vezes. Esta resposta pode realmente resolver esse problema com o systemd. (Embora não esteja diretamente relacionado à questão do OP).
Matt Bianco
1

Cannot bind any address

Se ele tentar se conectar a uma porta (por exemplo: por padrão: 22) abaixo de 1024, precisará de privilégio de root para fazer isso. Você correu service sshd startou algo parecido como root? Tente editar o arquivo de configuração sshd.conf, defina o endereço de ligação como uma porta maior que 1024 (por exemplo, 1122) e execute-o como um usuário simples!

David Lakatos
fonte
1

Eu tinha o mesmo problema e a solução mais fácil que encontrei foi removê openssh-lo e instalá-lo novamente.

 yum remove openssh

e depois:

 yum install openssh openssh-server openssh-clients

então você pode iniciar o sshdserviço:

 service sshd start
Ali Hashemi
fonte
0

Eu tive o mesmo problema. Apenas desativou o SELinux!

tquang
fonte
-1

Basta seguir isso,

mkdir -p /var/run/sshd

e

/usr/sbin/sshd -ddd

Isso deve corrigir seu problema.

Aman Juman
fonte
1
Por que isso deveria ser uma solução para o problema que o OP tinha?
HBruijn
1
Eu tenho um problema semelhante no OpenVZ. Eu segui isso foi para corrigir o problema.
Aman Juman