Problema común: ssh: conectarse al host 10.0.2.15 puerto 22: conexión rechazada

Problema común: ssh: conectarse al host 10.0.2.15 puerto 22: conexión rechazada

Estoy usando VirtualBox en Windows 10 (host) para crear dos máquinas virtuales ( Guest DTy Guest S). ¿Puedo utilizar SSH desde Guest DTel Guest S?

No tengo experiencia con SSH. Busqué en Google y leí respuestas a "preguntas similares" en este sitio.

Error

En Guest DT, hago esto:

$ ssh [email protected]
ssh: connect to host 10.0.2.15 port 22: Connection refused

Nota:

  • Puedo hacer ping con éxito a 10.0.2.15
  • testes mi nombre de usuario en el Guest S.

Configuración del entorno

En Guest DT:

$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
ssh-rsa <a very long key> neil@neil-VirtualBox

En Guest S:

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ echo "ssh-rsa <a very long key> neil@neil-VirtualBox" > ~/.ssh/authorized_keys
$ /etc/init.d/ssh restart

En Guest S:

test@server01:~$ service sshd status

ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-06-15 02:05:04 UTC; 1h 16min ago
  Process: 903 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 906 (sshd)
    Tasks: 1 (limit: 2317)
   CGroup: /system.slice/ssh.service
           └─906 /usr/sbin/sshd -D

Jun 15 02:05:04 server01 systemd[1]: Starting OpenBSD Secure Shell server...
Jun 15 02:05:04 server01 sshd[906]: Server listening on 0.0.0.0 port 22.
Jun 15 02:05:04 server01 sshd[906]: Server listening on :: port 22.
Jun 15 02:05:04 server01 systemd[1]: Started OpenBSD Secure Shell server.


$ sudo ufw status
[sudo] password for test: 
Status: inactive


/etc/ssh/sshd_config  contains :
#PubkeyAuthentication yes

Respuesta1

Creo que la configuración de red predeterminada para el invitado de VirtualBox NATno está destinada a lograr este tipo de comunicación de red; pero basado en publicaciones antiguas puede ser posible mediantereenvíoun puerto que no es del sistema a un puerto invitado y usando el valor predeterminadodirección IP de bucle invertidopara llegar al huésped. 10.0.2.2 es el bucle invertido predeterminado.

Configurar redes

Sin embargo, lo más fácil es asegurarse de elegir la red correcta para cada uno de los Invitados. Apague sus máquinas invitadas, luego en VirtualBox edite elModo de red adecuado a sus necesidades (cuadrícula de notas).

Pasos de Virtualbox para cambiar las redes

Usando la red NAT predeterminada

Al usar NAT, VirtualBox usa una IP especial 10.0.2.2 como loopback (al menos creo que esto sigue siendo cierto). Por lo tanto, los puertos reenviados desde loopback están disponibles para todos los invitados. Creo que deberías poder aprovechar esto. Para comunicarse mediante una red NAT, será necesario uno de los siguientes:

  • Usando VBoxManage, configure el reenvío NAT de unpuerto que no es del sistema (1024–65535)a un inferiorpuerto del sistema (< 1024).

    1. En este caso, reenvíe algo como el puerto 2222 al puerto 22 (predeterminado para SSH). Esto también supone que usaremos Guest Sla dirección IP de 10.0.2.15, según la pregunta.
    2. Configure el reenvío de puertos en Virtualbox Host, ejecute:

      VBoxManage modifica vm "nombre de VM" --natpf1 "guestssh,tcp,,2222,,22"

      Todo el tráfico TCP que llegue al puerto 2222 en cualquier interfaz de host se reenviará al puerto 22 del invitado. El nombre del protocolo tcp es un atributo obligatorio que define qué protocolo debe usarse para el reenvío (también se podría usar udp). El nombre guestsh es puramente descriptivo y se generará automáticamente si se omite. El número después de --natpf indica la tarjeta de red, como en otras partes de VBoxManage.

    3. Verifique la regla agregada:

      VBoxManage showvminfo miservidor | grep 'Regla'

    4. Conéctese Guest Servera través del mapeo de bucle invertido del host y el reenvío de puertos paraGuest S

      neil@neil-VirtualBox$ ssh -p 2222[correo electrónico protegido]

  • Alternativa: cambiar (Huéspedes)/etc/sshd_configescuchar en un puerto que no es del sistema (> 1024). Luego recarga ssh.

Respuesta2

Simplemente elimine todas las claves de huellas digitales ECDSA (probablemente SHA256) contenidas en el directorio de hosts conocidos.

  1. Corrervi ~/.ssh/known_hosts
  2. Elimine todas las claves asociadas con la dirección IP del sujeto dentro del archivoknown_hosts.
  3. Ingrese la tecla "Esc" y luego la tecla "Shift" + ":" + "x"

información relacionada