Conexión ssh rechazada: ¿cómo solucionar problemas?

17

Lo estoy intentando:

$ ssh eric@myserver

donde myserverhay una máquina en la intranet Puedo hacer ping myservero responder a HTTP en el puerto 8080, etc., pero cuando lo intento ssh, obtengo

ssh: connect to host myserver port 22: Connection refused

Estoy usando Ubuntu 10.

ps -ax, como se sugiere da:

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
fuente

Respuestas:

15

No tienes un demonio SSH ejecutándose. Si observa el resultado del ps axcomando, verá que los únicos dos procesos con 'ssh' en la descripción son ssh-agent(que hace algo completamente diferente sshd) y el grep sshproceso que está utilizando para filtrar el resultado ps.

Dependiendo de la distribución instalada, es posible que necesite instalar o ejecutar el sshservidor, generalmente llamado openssh-servero sshddependiendo de su administrador de paquetes.

Shadur
fuente
13

Pasos para depurar el problema anterior:

  1. Use la nmapherramienta para saber qué puertos están abiertos en ese servidor. nmapEs un escáner de puertos. Dado que es posible que el servidor ssh se ejecute en un puerto diferente. nmaple dará una lista de puertos que están abiertos.

     $ nmap myserver
    

2) Ahora puede verificar qué servidor se está ejecutando en un puerto determinado. Supongamos que en la salida de nmap, el puerto 2424 está abierto. Ahora puede saber qué servidor se ejecuta en 2424 utilizando la herramienta nc (netcat).

 $ nc -v -nn myserver portno

Supongamos que la salida del puerto 2424 es:

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

Esto significa que ssh se está ejecutando en 2424.

Siga cambiando el puerto en el comando anterior y verifique todos los puertos que están listados abiertos por nmap.

Pradeepchhetri
fuente
3

Eso significa que el servidor ssh no se está ejecutando en esa máquina o el firewall no permite el paso de ssh. Puede verificar si ssh se está ejecutando con 'ps -ax | grep ssh '.

David Schwartz
fuente
Pregunta editada para mostrar resultados de ps -ax. No estoy seguro de lo que significa.
Eric Wilson
1
Significa sshque no se está ejecutando.
David Schwartz
1
Extraño. No estoy seguro de por qué has ofrecido ayuda dos veces que no es realmente útil. Primero sugiere un comando útil para verificar si ssh se está ejecutando, sin decirme cómo interpretar los resultados. Luego, proporciona la interpretación mínima de esos resultados, sin una pista sobre cómo llegó a esa interpretación, o qué acción podría ser apropiada. No estoy seguro de si estás tratando de ayudarme y si estás juzgando mal mi nivel de experiencia, o si estás tratando de resaltar mi ignorancia.
Eric Wilson
3
La lista de procesos no incluye un sshdproceso, lo que significa que sshdno se está ejecutando. La solución es comenzar sshd.
David Schwartz
1

Las dos opciones anteriores son buenas. También puede usar los argumentos -vo -vv.

$ ssh -vv eric@myserver
frogstarr78
fuente
0

También enfrenté este problema, pero en un entorno VirtualBox, por lo que para resolverlo necesitamos configurar la dirección IP para que esté en el mismo segmento LAN; por ejemplo:

En mi máquina host, abro cmdy escribo ipconfig. Obtengo 100.2.2.1 (por ejemplo).

Por lo tanto, en la máquina virtual debemos establecer la dirección de la VM en /etc/hostsun valor como 100.2.2.3, echar un vistazo al número final y hacer rebotar la máquina virtual, pero antes de iniciar la máquina virtual configure la red en la configuración de la virtual máquina, por lo que debemos configurar el adaptador de red en la conexión de puente.

Todo esto está en un entorno Solaris.

luis torres
fuente