Seguindo o ponto de Fred nos comentários (e realmente lendo a mensagem de erro), eu estava incorreto e o ssh estava conectado. Deixarei minha resposta original na parte inferior e, além disso, responda a questão de não conseguir se conectar a um ssh em execução.
Outra boa maneira de diagnosticar problemas do ssh quando o servidor sshd recusa conexões, e se o OP estiver correto nada está sendo logado auth.log
ou syslog
, é rodá-lo em uma porta separada com depuração habilitada (eu ve escolheu a porta arbitrária de 44
).
/full/path/to/sshd -p 44 -d
Você pode se conectar ao seu cliente ssh e obter mais depuração do problema:
ssh -p 44 [email protected]
Root (como Fred apontou em sua resposta) é um usuário que pode ser potencialmente restrito
através da opção ssh PermitRootLogin
no seu sshd_config
. Além disso, os tipos de métodos de autenticação usados pelo seu sshd_config
podem restringir ainda mais como você pode acessar
seu anfitrião:
RSAAuthentication
PubkeyAuthentication
RhostsRSAAuthentication
HostbasedAuthentication
ChallengeResponseAuthentication
PasswordAuthentication
KerberosAuthentication
GSSAPIAuthentication
Veja a man page do sshd_config ( man 5 sshd_config
) para mais informações sobre essas opções. Geralmente a maioria dos sshds tem RSAAuthentication
, PubkeyAuthentication
e às vezes PasswordAuthentication
. RSAAuthentication
é específico de Protocol 1
e a maioria dos hosts usa Protocol 2
, que usa PubkeyAuthentication
. Ambos contam com root
tendo um arquivo de chave (geralmente encontrado em /root/.ssh/authorized_keys
), mas esse local pode ser substituído pela opção AuthorizedKeysFile
. Parece que PasswordAuthentication
não está ativado no seu sshd.
Para autenticação RSA e Pubkey, você precisa de um par de chaves. Que você gerou e eles vivem em sua máquina cliente em /home/mona/.ssh/id_rsa
e /home/mona/.ssh/id_rsa.pub
. O público metade desses dois arquivos (a chave contida em /home/mona/.ssh/id_rsa.pub) você precisaria colocar no arquivo authorized_key
do root mencionado acima.
Resposta original, referindo-se a uma falha em conectar-se remotamente ao processo sshd
Parece que o TCPWrappers ou um firewall estão fechando a conexão inicial.
Verifique seus arquivos auth.log
ou syslog
em /var/log
, pois eles podem fornecer algumas pistas sobre o que está bloqueando a conexão.
O TCPwrappers geralmente é implementado por meio de um arquivo /etc/hosts.allow
e em alguns unixes um arquivo adicional ou apenas o /etc/hosts.deny
(ou seja, sem um arquivo hosts.allow).
As entradas geralmente são da forma:
<service> : <access list> : <allow|deny>
OR
<service> : <access list>
dependendo do tipo de wrapper tcp sendo usado. O formato desses arquivos geralmente pode ser encontrado na página do manual hosts_access man 5 hosts_access
. Talvez seja necessário adicionar uma entrada para permitir seu acesso IP remoto.
sshd : my.ip.address.here : allow
A maioria das distribuições com um kernel Linux tendem a usar iptables
como o firewall principal, embora algumas usem ipchains
. (Eu sei que o FreeBSD usa ipfw
que é portado do NetBSD). O seu provedor de serviços também pode ter um firewall ou roteador com um firewall em frente ao seu serviço que esteja bloqueando essas solicitações. Quanto ao firewall que seus hosts usam precisará de alguma investigação.
iptables
regras de firewall podem ser listadas por meio do comando iptables -nvL
(que deve ser executado como root ou via sudo). o INPUT
chain é o conjunto de regras usado para permitir / impedir conexões de entrada do seu host. Talvez seja necessário adicionar uma regra para permitir a entrada de conexões SSH:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT -m comment --comment "Allow SSH connections from all hosts"
Você pode querer permitir apenas conexões de um IP específico:
iptables -I INPUT -s 10.10.10.10 -p tcp --dport 22 -j ACCEPT -m comment --comment "Allow SSH connections from the 10.10.10.10 host"
Se o seu provedor de serviços bloquear a porta 22, provavelmente será necessário colocar o serviço em uma porta diferente (a porta 2222
é bastante popular) através da opção Port
no seu arquivo sshd_config
(que normalmente mora em /etc/ssh
).