ssh error - a ligação à porta 22 falhou: Endereço já em uso

5

Estou tentando iniciar meu próprio servidor da web. Eu instalei uma nova cópia do servidor ubuntu e openSSH.

Eu posso usar o SSH no servidor usando o IP interno (192.168.1.12), mas não consigo acessá-lo através do meu endereço IP externo. Eu configurei o encaminhamento de porta, mas ainda recebo 'conexão recusada' do putty.

Uma coisa que eu notei é que, se eu fizer logon no meu servidor web e digitar sudo /usr/sbin/sshd -d , recebo os seguintes erros:

debug1: Bind to port 22 pm 0.0.0.0
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Bind to port 22 on ::.
Bind to port 22 on :: failed: Address already in use.

Eu estou supondo que esta é a causa dos meus problemas tentando ssh usando meu endereço externo? Eu tentei desativar ipv6, mas apenas um dos erros é corrigido quando eu faço isso

EDITAR: netstat -tan | grep LIST fornece o seguinte resultado

tcp    0    0 0.0.0.0:22      0.0.0.0:*      LISTEN
tcp6   0    0 :::22           :::*           LISTEN

netstat -tulpn

Proto Recv-Q  Send-Q   Local Address       Foreign Address      State    PID/Program name
tcp     0       0      0.0.0.0:22            0.0.0.0:*          LISTEN     620/sshd
tcp6    0       0      :::22                 :::*               LISTEN     620/sshd
udp     0       0      0.0.0.0:68            0.0.0.0:*                     604/dhclient3
    
por Roger Templeton 19.01.2012 / 03:05

2 respostas

7

O sshd já está em execução, conforme evidenciado pelo seu netstat. Ele também está ligado a todos os IPs (0.0.0.0 no netstat), portanto não deve haver nenhum problema.

Você tem um firewall no seu roteador? Você pode ter o encaminhamento de porta ativado, mas um firewall ainda pode estar perdendo o 22. Também é possível que seu ISP esteja bloqueando 22 antes mesmo de chegar até você. Eu também faria um iptables -F (soltar todas as regras do iptables) para ter certeza; eles retornarão em uma reinicialização (ou você poderá restaurá-los usando o iptables-restore).

Você pode confirmar que o sshd não está recusando as conexões, verificando /var/log/auth.log para as conexões recusadas.

Se você confirmou que não tem conexões recusadas em seus logs e nenhum firewall em seu roteador, sugerimos alterar o SSH para usar uma porta diferente de 22 (uma porta alta aleatória > 1024). Você pode fazer isso editando /etc/ssh/ssh_config e alterando "Port 22" para algo maior.

EDIT: Atualização dos comentários para salvar uma leitura; Você também deve tentar verificar a partir de um IP fora de sua rede em circunstâncias como esta. Neste caso, o ISP estava bloqueando a porta 22, e a conexão a uma porta alta internamente (especificando o IP externo) não estava funcionando, provavelmente devido à falta de NAT suspenso.

    
por 19.01.2012 / 09:30
1

O endereço já em uso normalmente significa que algum serviço já está sendo executado na porta em questão, isto é. 22? você verificou serviços de escuta? você pode despejar

netstat -tan | grep LIST
    
por 19.01.2012 / 03:10

Tags