He encontrado que la forma más fácil de resolver los problemas de conexión ssh es utilizar el modo de depuración de las aplicaciones del cliente y del servidor.
En una máquina, lo llamaremos pcA, abriremos un terminal y ejecutaremos el siguiente comando:
/usr/sbin/sshd -d -p 2222
En la otra máquina de Linux, pcB, ingrese este comando y observe la salida del servidor en pcA:
ssh -vv -p 2222 [IP Address of pcA]
Lo que estamos haciendo aquí es ejecutar una versión de 'primer plano' del demonio ssh en pcA, escuchando las conexiones en el puerto 2222, ejecutándose en modo de depuración (detallado). En pcB estamos intentando conectarnos a pcA como un cliente ssh en el puerto 2222, en modo detallado.
Tanto pcA como pcB emitirán texto que indica el flujo del proceso de conexión como lo ven.
Normalmente, los resultados son suficientes para que la resolución sea obvia, p. Ej. permisos en su directorio ~ / .ssh.
Un par de consejos:
Si el servidor no ve ningún intento de conexión desde la PCB, entonces tiene un problema de enrutamiento de red o de firewall. En este caso, intente una exploración de red en el mismo puerto desde pcB usando nmap: nmap -p 2222 [ip address pcA]
También puedes llamar a nmap con sintaxis. nmap -A [ip address pcA]
para realizar una exploración general (incluido el puerto std sshd (22) y la información de traceroute. Esto podría indicar dónde se caen las cosas (¿firewall del enrutador?)
Si no es obvio, publique los resultados tanto del cliente como del servidor en su pregunta.
Actualizar
Ejecuta el comando netstat -tulpn
en pcA para ver qué está escuchando en qué puertos de esa máquina. Te dará una salida como esta:
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 1133/sshd
tcp6 0 0 :::22 :::* LISTEN 1133/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 722/dhclient
Si lo ejecuta y sshd se ejecuta normalmente en el puerto 22. Publique lo que obtiene en respuesta a este comando en pcA.
2da actualización Vio su respuesta: ¿a qué se definió ListenAddress antes? Por lo general, el valor predeterminado es 0.0.0.0 (que es CUALQUIER dirección), y no hay problemas con ella.
<intro> debug1: < info about private host keys> debug1: Set /proc/self/oom_score_adj from 0 to -1000 debug1: Bind to port 17290 on ::1. Bind to port 17290 on ::1 failed: Address already in use. debug1: Bind to port 17290 on 127.0.0.1. Bind to port 17290 on 127.0.0.1 failed: Address already in use. debug1: Bind to port 17290 on ::. Bind to port 17290 on :: failed: Address already in use. Cannot bind any address.
¿Qué sugeriría que algo anda mal con el enlace ip?Ok, acabo de añadir manualmente el
ip
s de mis máquinas en elListenAddress
líneas de/etc/ssh/sshd_config
. Pros: Por fin puedo ssh. Contras: Eso es probablemente un terrible truco sin escalar; si alguna vez necesito guardar mis formularios en mi máquina fuera de la LAN, probablemente tendré problemas reales.fuente