0 votos

Problema SSH: kex_exchange_identification: read: Restablecimiento de la conexión por parte de un compañero

MacBook Pro 15" 2018, 32G RAM, OS 12.3

La semana pasada estaba tratando de conectar un script a una base de datos en mi host web a través de SSH, y ejecuté el siguiente script:

<?php
  shell_exec("ssh -f -L 3307:127.0.0.1:3306 username@00.000.000.00 sleep 60 >> logfile");
  $db = mysqli_connect('127.0.0.1', 'db_user', 'db_pass', 'test_ssh', 3307);
  if (!$db) {
    die("DB connection failed: " . mysqli_connect_error());
  } else {
    echo "Successfully connected!";
  }
?>

Después de eso, no puedo SSH (o SFTP) en la cuenta de alojamiento web. Aquí está la salida verbosa:

My-MacBook-Pro:~ tech01$ ssh -vvvv -i ~/.ssh/id_rsa username@00.000.000.00
OpenSSH_8.6p1, LibreSSL 2.8.3
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: include /etc/ssh/ssh_config.d/* matched no files
debug1: /etc/ssh/ssh_config line 54: Applying options for *
debug2: resolve_canonicalize: hostname 00.000.000.00 is address
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/Users/tech01/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/Users/tech01/.ssh/known_hosts2'
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug3: ssh_connect_direct: entering
debug1: Connecting to 00.000.000.00 [00.000.000.00] port 22.
debug3: set_sock_tos: set socket 3 IP_TOS 0x48
debug1: Connection established.
debug1: identity file /Users/tech01/.ssh/id_rsa type 0
debug1: identity file /Users/tech01/.ssh/id_rsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.6
kex_exchange_identification: read: Connection reset by peer
Connection reset by 00.000.000.00 port 22
My-MacBook-Pro:~ tech01$

No había nada en los registros del sistema o del WiFi, pero esto estaba en el registro de launchd:

2022-03-29 23:13:42.497859 (com.openssh.sshd) <Error>: Unknown key for plist importer (key: SHAuthorizationRight type: string)

Aquí está la salida de: netstat -anvp tcp | awk 'NR<3 || /LISTEN/'

Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)     rhiwat shiwat    pid   epid  state    options
tcp4       0      0  127.0.0.1.49179        *.*                    LISTEN      131072 131072    796      0 0x0100 0x00000002
tcp4       0      0  127.94.0.1.946         *.*                    LISTEN      131072 131072    100      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49166 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49165 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49164 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49163 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49162 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49161 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49160 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49159 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49158 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49157 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49156 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp6       0      0  fe80::aede:48ff:.49155 *.*                    LISTEN      131072 131072    104      0 0x0180 0x00000006
tcp46      0      0  *.49152                *.*                    LISTEN      131072 131072    516      0 0x0080 0x00000006
tcp4       0      0  *.22                   *.*                    LISTEN      131072 131072      1      0 0x0180 0x00000006
tcp6       0      0  *.22                   *.*                    LISTEN      131072 131072      1      0 0x0180 0x00000006

Aquí la salida de: sudo lsof -i :22

COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
launchd   1 root    8u  IPv6 0x4914d8db57e256b7      0t0  TCP *:ssh (LISTEN)
launchd   1 root    9u  IPv4 0x4914d8e02411ce2f      0t0  TCP *:ssh (LISTEN)
launchd   1 root   11u  IPv6 0x4914d8db57e256b7      0t0  TCP *:ssh (LISTEN)
launchd   1 root   12u  IPv4 0x4914d8e02411ce2f      0t0  TCP *:ssh (LISTEN)

Lo que he probado:

  • Copié las claves RSA a mi viejo iMac con High Sierra y se conectó sin problemas. No es el servidor remoto.
  • Comprobado los permisos de los archivos
  • Reinstalado OS 12.3
  • IPv6 deshabilitado
  • Descargado/recargado el ssh.plist y reiniciado SSH
  • Desactivar el firewall del Mac
  • Buscar en Google el error o los errores durante dos días
  • Matando el PID 1 en la consola. Reinició el portátil y no funcionó.

¿Dónde se produce exactamente el fallo? Veo un par de líneas diferentes en la salida verbose que podrían serlo, pero no estoy seguro, así que no sé dónde concentrar mis esfuerzos. Mi siguiente paso es reimaginar el portátil.

1voto

Jose Chavez Puntos 645

Sólo para aclarar algunas cosas de tu lista primero:

  1. Es imposible que tu script tenga algo que ver con esto. Es totalmente casualidad que hayas ejecutado eso primero y luego haya ocurrido otra cosa.

  2. Sus registros de WiFi no tienen nada que ver con esto. El mensaje que has encontrado de launchd es sobre "sshd", no "ssh". Así que no tiene nada que ver con tu problema.

  3. Mirar el netstat para buscar sockets de escucha en su Mac no tiene nada que ver con su problema. No hay necesidad de eso ya que no hay sockets de escucha en su Mac que estén involucrados en la conexión a un servidor remoto. No podrá diagnosticar nada aquí.

  4. Lo mismo ocurre con lsof. No tiene nada que ver con su problema, y no podría aprender nada de su salida con respecto a este problema.

  5. Recargar ssh.plist y reiniciar SSH no tiene nada que ver con tu problema. Esos se usan para cuando quieres poder conectarte remotamente a su Mac - no cuando quiera conectarse a un servidor remoto de tu Mac.

  6. Reinstalar el sistema operativo, deshabilitar el IPv6 y reimaginar el portátil no es realmente aplicable en este caso. Usted no necesita estas cosas.

  7. Matar el PID 1 - No tengo ni idea de dónde has sacado esta idea. No le ayudará de ninguna manera - esencialmente bloqueará su ordenador deteniendo todos los programas.

Ahora pasemos a tu problema real:

Por lo que he entendido dices que tienes archivos clave en este ordenador. Tienen los permisos correctos - y "solía funcionar". No tienes claro cuándo solía funcionar.

También dices que si copias esos mismos archivos clave en otro ordenador con una versión más antigua de MacOS, simplemente funciona.

Su salida de ssh indica que el servidor rechazó su conexión.

Si es correcto que tiene los archivos clave correctos y los permisos correctos en ellos - entonces parece que tiene un problema de incompatibilidad de versiones en sus manos. Básicamente, las nuevas versiones de OpenSSH desactivan las partes antiguas e inseguras del protocolo, mientras que los servidores antiguos no conocen las nuevas funcionalidades. Esto podría llevarte a una situación en la que no puedas conectarte.

Yo inspeccionaría el registro de SSH en el servidor y comprobaría que efectivamente estás ejecutando una versión reciente de sshd allí.

También podría ser el caso de que su servidor (o algo entre usted y su servidor) esté inspeccionando el tráfico (por motivos de seguridad) y dejando caer las conexiones. Por ejemplo, algunos sistemas bloquearán las conexiones desde direcciones IP que hayan intentado conectarse sin éxito un número determinado de veces. Inténtalo de nuevo con el mismo ordenador en una conexión a Internet diferente (por ejemplo, conéctate a un hotspot hecho por tu teléfono).

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