(Esta pregunta debería etiquetarse con "Tailscale", pero eso aún no existe; requiere conocimiento de Tailscale)
Tengo una computadora portátil Ubuntu 20.04 estándar, que se conecta mediante ssh a una Raspberry Pi remota (puerto 22). En la ubicación remota, hay reenvío de puertos en el enrutador (59995->22).
Nota: lo he eliminado ~/.ssh/config
durante las pruebas.
SSH siempre se conecta exitosamente, usando:
ssh user@public_ip -i ~/.ssh/id_rsa -p 59995
Sin embargo, cuando uso Tailscale IP, nunca se conecta, simplemente se cuelga durante 120 segundos y luego se agota el tiempo de espera:
ssh user@tailscale-ip -i ~/.ssh/id_rsa
(No funciona)
Sin embargo, si compilo manualmente OpenSSH v8.2 y uso esa versión, en lugar del binario /usr/bin/ssh, ¡funciona perfectamente! Aunque /usr/bin/ssh también es v8.2
./ssh user@tailscale-ip -i ~/.ssh/id_rsa
(¡esto funciona!)
Resumen: el sistema binario funciona bien con ssh "normal", pero no con ssh-via-tailscale. Sin embargo, una (misma) versión compilada manualmente de Openssh funciona bien tanto con ssh normal como con ssh-over-tailsale. ¿Alguien sabe qué podría estar causando esto?
Notas adicionales
No creo que sea ningún problema obvio con la red de escala final: es decir, si investigo a través de IP de escala final, nmap
el escaneo muestra que los puertos correctos están abiertos y puedo acceder netcat
directamente a él tailscale_ip:22
, está recibiendo y respondiendo.
diff ~/openssh-8.2p1/ssh /usr/bin/ssh
muestra que los binarios difieren. (también hay una gran diferencia de tamaño, alrededor de 3 MB frente a 0,7 MB)
/usr/bin/ssh -V
: OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f 31 de marzo de 2020
~/openssh-8.2p1/ssh -V
: OpenSSH_8.2p1, OpenSSL 1.1.1f 31 de marzo de 2020
Registro de /usr/bin/ssh -vvv user@tailscale_ip -i ~/.ssh/id_rsa
(IP redactada)
OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f 31 Mar 2020
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 100.1.1.1 is address
debug2: ssh_connect_direct
debug1: Connecting to 100.1.1.1 [100.1.1.1] port 22.
< 2 minute hang here >
ssh: connect to host 100.1.1.1 port 22: Connection timed out
Respuesta1
Tuve un problema similar porque mi cliente ssh no mostraba el mensaje 2FA de Tailscale, con la política de ACL predeterminada configurada ssh/action
en "check"
.
¿Intenta verificar la configuración de ACL para su usuario/etiqueta? ¿Cuál es el valor de acción para ssh? Si está configurado en "check"
, intente cambiarlo "access"
e intente acceder a su host a través de ssh. Si esto funciona, sugeriré investigar cómo agregar 2FA en el cliente ssh para que muestre el enlace de autenticación de Tailscale que se requiere en el "check"
modo.
Algunos enlaces que me ayudaron a investigar y solucionar problemas similares: