¿Cómo ssh del cliente Linux al host OS X sin mensaje de error “ssh_exchange_identification: conexión cerrada por el host remoto”?


1

Mi LAN comprende una computadora de escritorio que ejecuta Linux (Debian Wheezy), una MacBook con OS X Mavericks y un módem-router; ssh con Linux host y OS X client funciona bien, sin problemas de conexión de cliente a host.

Además, he intentado implementar el sistema inverso: la computadora Linux también se convirtió en un cliente y la computadora OS X también se convirtió en un host. Pero intentar ssh desde un cliente Linux a un host OS X da como resultado

ssh_exchange_identification: Connection closed by remote host

Esto sucede independientemente de si el firewall de Mac está activado o desactivado.

He intentado numerosas soluciones sugeridas por las búsquedas de Google, incluso en:

introduzca la descripción del enlace aquí introduzca la descripción del enlace aquí

(El sistema no me permitió publicar más enlaces).

Estoy bastante seguro de que la propiedad de los archivos, los permisos, las configuraciones son correctas.

El mismo puerto, digamos 1234, está configurado para ssh en cada computadora como host y cliente; Los comandos de netstat de ambas computadoras indican que se escucha el puerto 1234. Ni DenyHosts ni fail2ban están instalados.

En el cliente Linux, /var/log/auth.log no da ningún mensaje relevante.

Telneting de cliente a host da

Connection closed by foreign host.

En el host OS X, en el momento de un intento de conexión ssh:

/var/log/appfirewall.log muestra

MacBook.local socketfilterfw[636] <Info>: sshd-keygen-wrapper: Allow TCP CONNECT (in:1 out:0 )

/var/log/system.log muestra

MacBook.local com.apple.preference.security.remoteservice[662]: nsc_smb XPC: handle_event error : < Connection invalid >

Parece que el problema reside en el host OS X y que la clave para resolverlo podría estar en estos mensajes, pero no he podido encontrar información útil.

En la MacBook, Preferencias del sistema & gt; Seguridad y amp; Privacidad & gt; Cortafuegos & gt; Las opciones de firewall, "Inicio de sesión remoto (SSH)" y "sshd-keygen-wrapper" están configuradas para "Permitir conexiones entrantes".

"Inicio de sesión remoto" está habilitado en Preferencias del sistema & gt; Compartiendo

¿Qué podría estar causando el problema de conexión ssh y cómo resolverlo?

Información adicional desde la publicación inicial

Gracias por las respuestas, pero ya había hecho todo lo que se describe en los enlaces, había iniciado sesión de forma remota con mi nombre de usuario (alex) como usuario, y reinicié ssh en ambas computadoras después de cada cambio relacionado con ssh, seguido de reiniciar las dos computadoras. También reinstalé ssh varias veces en la computadora con Linux y generé nuevas claves varias veces en ambas computadoras.

Quizás debería haberlo aclarado en ssh_config para ambos clientes

PasswordAuthentication no
PubkeyAuthentication yes

Aquí está la salida solicitada del host OS X: (no estoy seguro de lo útil que es porque cambié el puerto ssh de los 22 predeterminados, por ejemplo, 1234)

MacBook:~ alex$ ssh -vvv localhost
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [::1] port 22.
debug1: connect to address ::1 port 22: Connection refused
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: connect to address 127.0.0.1 port 22: Connection refused
debug1: Connecting to localhost [fe80::1%lo0] port 22.
debug1: connect to address fe80::1%lo0 port 22: Connection refused
ssh: connect to host localhost port 22: Connection refused

Información adicional aclaratoria:

MacBook:~ alex$ ssh -vvv -p 1234 localhost
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [::1] port 1234.
debug1: connect to address ::1 port 1234: Connection refused
debug1: Connecting to localhost [127.0.0.1] port 1234.
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/Users/alex/.ssh/id_rsa" as a RSA1 public key
debug1: identity file /Users/alex/.ssh/id_rsa type 1
debug1: identity file /Users/alex/.ssh/id_rsa-cert type -1
debug1: identity file /Users/alex/.ssh/id_dsa type -1
debug1: identity file /Users/alex/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
ssh_exchange_identification: Connection closed by remote host
MacBook:~ alex$ 

Salida solicitada desde el cliente de Linux:

alex@desktop:~$ ssh -v alex@MacBook.local
OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug1: /etc/ssh/ssh_config line 102: Applying options for *
debug1: Connecting to MacBook.local [192.168.0.3] port 1234.
debug1: Connection established.
debug1: identity file /home/alex/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/alex/.ssh/id_rsa-cert type -1
ssh_exchange_identification: Connection closed by remote host
alex@desktop:~$ 

Después de esforzarme mucho para que ssh trabajara con Linux como host y OS X como cliente, pensé que hacer lo contrario sería relativamente simple. Tal vez sea, pero no tan lejos! Otra ayuda sería muy apreciada.

Lars

MacBook:~ alex$ sudo sshd -t
Password:
/etc/sshd_config: No such file or directory
MacBook:~ alex$

El archivo sshd_config está en / private / etc / ssh, al igual que ssh_config y los archivos de claves ssh_host.

Problema resuelto

Coloqué una copia de sshd_config en / private / etc e hice sudo sshd -t. La salida dio errores de formato que sugieren errores de estilo con una referencia a rtf. La fuente era Times. Había copiado el archivo desde la computadora Linux y en el proceso la fuente cambió de texto sin formato.

Cambié el archivo sshd_config en / private / etc / ssh a texto sin formato, alterné "Inicio de sesión remoto" en Preferencias del sistema & gt; Compartir en la Mac, emitió el comando ssh desde el cliente de Linux y pudo conectarse al host OS X por primera vez.

No había encontrado el sshd -t comando antes, así que gracias Lars por llamarme la atención y señalarme la dirección correcta. La solución era realmente simple, pero identificarla no lo era.


Hace sudo sshd -t ¿En tu Mac nota algún problema de configuración?
Lars Rohrbach

Respuestas:


0

Probablemente necesites habilitar el acceso remoto en tu mac. Sigue estos pasos..

  1. En su Mac, abra las preferencias de uso compartido y seleccione 'Inicio de sesión remoto'
  2. Especifique qué usuarios pueden iniciar sesión: Todos los usuarios o 'Solo estos usuarios'.

Entonces deberías poder ssh en él a través del comando.

ssh -v user@macOSX-hostname

Si no se conecta, corte / pegue toda la conexión para que podamos ver dónde falla. -v debería darte alguna información.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.