Conexão ssh recusada: como solucionar problemas?

17

Estou tentando:

$ ssh eric@myserver

onde myserverestá uma máquina na intranet. Posso executar ping myserverou responder ao HTTP na porta 8080, etc., mas quando tento ssh, recebo

ssh: connect to host myserver port 22: Connection refused

Estou usando o Ubuntu 10.

ps -ax, conforme sugerido, fornece:

eric@Isaiah:~$ ps -ax | grep ssh
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
 1641 ?        Ss     0:04 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session gnome-session
18376 pts/3    S+     0:00 grep --color=auto ssh
Eric Wilson
fonte

Respostas:

15

Você não tem um daemon SSH em execução. Se você observar a saída do ps axcomando, verá que os únicos dois processos com 'ssh' na descrição são ssh-agent(o que faz algo completamente diferente de sshd) e o grep sshprocesso que você está usando para filtrar a saída ps.

Dependendo da distribuição instalada, pode ser necessário instalar ou executar o sshservidor, normalmente chamado openssh-serverou sshddependendo do seu gerenciador de pacotes.

Shadur
fonte
13

Etapas para depurar o problema acima:

  1. Use a nmapferramenta para saber quais portas estão abertas nesse servidor. nmapé um scanner de portas. Como pode ser possível que o servidor ssh esteja sendo executado em uma porta diferente. nmaplhe dará uma lista de portas que estão abertas.

     $ nmap myserver
    

2) Agora você pode verificar qual servidor está executando em uma determinada porta. Suponha que na saída do nmap, a porta 2424 esteja aberta. Agora você pode qual servidor está executando no 2424 usando a ferramenta nc (netcat).

 $ nc -v -nn myserver portno

Suponha que a saída da porta 2424 seja:

myserver 2424 open
SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5

Isso significa que o ssh está sendo executado em 2424.

Continue alterando o portno no comando acima e verifique todas as portas listadas abertas pelo nmap.

pradeepchhetri
fonte
3

Isso significa que o servidor ssh não está em execução nessa máquina ou o firewall não está permitindo a passagem do ssh. Você pode verificar se o ssh está sendo executado com 'ps -ax | grep ssh '.

David Schwartz
fonte
Pergunta editada para mostrar os resultados de ps -ax. Não tenho certeza do que isso significa.
Eric Wilson
1
Isso significa que sshnão está sendo executado.
David Schwartz
1
Esquisito. Não sei por que você ofereceu duas vezes ajuda que não é realmente útil. Primeiro, você sugere um comando útil para verificar se o ssh está em execução, sem me dizer como interpretar os resultados. Em seguida, você fornece a interpretação mínima desses resultados, sem uma dica de como você chegou a essa interpretação ou que ação pode ser apropriada. Não tenho certeza se você está tentando me ajudar e está julgando mal meu nível de experiência ou se está tentando destacar minha ignorância.
Eric Wilson
3
A lista de processos não inclui um sshdprocesso, o que significa que sshdnão está sendo executado. A solução é começar sshd.
David Schwartz
1

As duas opções anteriores são boas. Você também pode usar os argumentos -vou -vv.

$ ssh -vv eric@myserver
frogstarr78
fonte
0

Também enfrentei esse problema, mas em um ambiente VirtualBox, para resolvê-lo, precisamos definir o endereço IP para o mesmo segmento da LAN; por exemplo:

Na minha máquina host, abro cmde digito ipconfig. Eu recebo 100.2.2.1 (por exemplo).

Portanto, na máquina virtual, devemos definir o endereço da VM /etc/hostspara um valor como 100.2.2.3, dar uma olhada no número final e devolver a máquina virtual, mas antes de iniciar a máquina virtual, configure a rede nas configurações do virtual máquina, por isso precisamos definir o adaptador de rede na conexão de ponte.

Tudo isso está em um ambiente Solaris.

luis torres
fonte