2 votos

La conexión SSH con autenticación de clave pública / privada falla solo para el puerto 22

He estado luchando durante horas para encontrar el sentido de un error específico de la conexión a un servidor SSH de un reciente sistema de macOS.

ssh user@machine -p 22

He añadido todas las llaves ~/.ssh/authorized_keys en el equipo de destino. Las llaves se han generado con la configuración predeterminada para ssh-keygen.

El servidor es un recién aprovisionado de Ubuntu 18.04 instancia en Azure, que también trató de diferente proveedor de la nube.

Puedo conectar correctamente con la clave pública/privada de autenticación (PKA) de una máquina de Ubuntu. Que no se puede conectar al puerto 22 con la clave pública/privada de autenticación (PKA) de los macOS de la máquina en cuestión.

Lo que me estoy perdiendo?

Los síntomas

Para la conexión de los macOS máquina que observar los síntomas siguientes:

  • La conexión con el servidor funciona con autenticación de contraseña
  • La conexión con el servidor no funciona con la PKA
  • Cuando empiezo un segundo servidor SSH utilizando /usr/sbin/sshd -d -p 2222, la conexión con el servidor funciona con PKA (usando ssh -p 2222 en el cliente)
  • Mismo para los puertos 23, 80
  • Comportamiento de la misma mediante
    • el built-in del cliente SSH
    • un recién hecho uno (versión 8.1p1 con brew install openssh)
    • cyberduck

En los registros del cliente

He comprobado los registros de ssh -vvv para ambos puertos. La única diferencia (aparte de la clave de host diferencias) son las siguientes líneas que son las que faltan cuando se utiliza el puerto 22 (esto hace que sea muy difícil de búsqueda para el problema):

debug3: put_host_port: [machine]:2222\
...
debug3: put_host_port: [ip-address]:2222\
debug3: put_host_port: [machine]:2222\
...
debug3: receive packet: type 7\
debug1: SSH2_MSG_EXT_INFO received\
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>\

Parece que, cuando se conecta al puerto 22, el servidor no puede enviar (o el cliente no recibe) un "paquete de tipo 7" con SSH2_MSG_EXT_INFO y kex_input_ext_info.

Configuración de cliente

La salida de ssh -G (la cual muestra la configuración efectiva) es idéntico para el puerto 22 y de otros puertos.

Los registros del servidor

Cuando se mira a la salida de la /usr/sbin/sshd -ddd, la siguiente entrada es falta para el puerto 22:

debug3: send packet: type 7 [preauth]

El servidor no envía un "tipo de paquete de 7"; pero tal vez esto es sólo una relación de síntoma?

También veo las siguientes diferencias:

  • El puerto 22:

    debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1 [preauth]
    debug2: host key algorithms: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa [preauth]
    
  • El puerto 80:

    debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c [preauth]
    debug2: host key algorithms: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa [preauth]
    

    Participaciones Extra (en comparación con el puerto 22):

    • KEX algorithms: ext-c-info
    • host key algorithms: rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com

    Orden diferente:

    • ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,

Solución

Para las máquinas que están bajo mi control, puede cambiar el puerto por defecto del demonio de SSH.

Pregunta

¿Qué más puedo hacer para reducir el problema?

2voto

Jose Chavez Puntos 645

El problema aquí es que parece ser que tiene "algo" interferir con el tráfico de red que es específicamente el bloqueo de su intento de autenticación a través de las teclas en el puerto 22.

Este "algo" podría ser llamado "la protección de extremo de software" (software de firewall), podría ser un dispositivo de red en su red (es decir, el router con la inspección profunda de paquetes, firewall, etc.) o podría ser un dispositivo de red en la ruta de acceso de red o en el servidor final.

Esto parece ser lo más lógico, ya que esto puede explicar por qué no funciona en el puerto 22, pero no funcionan en otros puertos.

I. e. si no se incluye la información de los puertos, me hubiera mirado en el archivo authorized_keys en el servidor. Es posible especificar que una clave específica sólo puede ser utilizado para la autenticación cuando se conecta desde un host específico, o de que no se debe utilizar cuando se conecta desde un host específico. Si había configurado para permitir que el host Ubuntu y no la Mac de host que podría explicar las partes de lo que estás viendo. Sin embargo, este método no incluye la coincidencia de nuevo el número de puerto (por lo que no puede explicar eso.

Todo esto es suponiendo que usted está ejecutando exactamente la misma configuración para el puerto 22 y el puerto 2222 (que usted ha declarado que son), y que se está ejecutando estándar OpenSSH software en el servidor. Si no estás, que el software puede incluir la configuración de la discriminación basada en puertos -, pero no creo que sea probable.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X