Conceptos básicos de SSH en máquinas virtuales Vagrant

Conceptos básicos de SSH en máquinas virtuales Vagrant

Estoy construyendo una máquina vagabunda (Ubuntu 12.04) con los siguientes requisitos:

  • Acceso SSH a través de Vagrant a un usuario con privilegios sudo.

Generé claves públicas/privadas (a través de ssh-keygen) en el host y moví la clave pública al authorized_keysarchivo del invitado. Y probé un SSH sin contraseña.

Suceden un par de cosas cuando escribo vagrant sshcon claves SSH habilitadas con contraseña:

  • Tengo que escribir mi frase clave en la máquina host para SSH en la VM invitada.
  • Cada vez que escribo elcorrectofrase clave no se acepta.

Lo que resulta en que recibo el siguiente mensaje de error:

SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

Luego probé ssh sin contraseña.

vagrant ssh
[email protected]'s password: 

??

¡Nunca configuré un usuario vagabundo! Debería ser user@hostnamecomo lo configuré y puedo confirmar que funciona cuando inicio la VM en VirtualBox.

¿Cómo consigo que las claves ssh privadas funcionen correctamente con vagrant? ¿Qué hacer con el anfitrión, qué hacer con el invitado?

Actualizar

En VirtualBox, la VM está activa pero no puedo ejecutar ninguno de los siguientes comandos desde la consola vagabunda además de los problemas con vagrant ssh:

vagrant up vagrant halt

El único comando vagabundo que funciona es vagrant suspend. Cuando lo uso, puedo detener la máquina mediante vagrant halt. Aquí está el resultado:

$ vagrant halt
[default] Attempting graceful shutdown of VM...
SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

Respuesta1

Estoy agregando esta solución para cualquiera que llegue a este hilo:

Primero abra este archivo en la máquina host:

$ sudo vim ~/.vagrant.d/boxes/<yourbox>/include/_Vagrantfile

Verifique que config.ssh.private_key_pathesté configurado en su archivo de clave privada. Si no actualiza eso

ssh a vagrant box con contraseña predeterminada

$ vagrant ssh (default pwd = ‘vagrant’]

Una vez en la caja:

vagrant@lucid64:~$ sudo visudo -f .ssh/authorized_keys

Agregue su clave pública a este archivo, guárdelo y salga del cuadro.

vagrant@lucid64:~$ exit

Volver a la máquina local

$ vagrant halt
$ vagrant up

Esto funcionó para mí

Respuesta2

Tuve el mismo problema aunque no se debió a problemas con la clave SSH. Al iniciar la máquina, Virtualbox funcionó y levantó bien al invitado. Yo mismo pude conectarme por SSH a la máquina y vagrant sshfuncionó aunque me pidió una contraseña. Inicié sesión y encontré lo siguiente en /var/log/auth.log en el invitado:

Feb 13 10:14:34 spaaza-dev sshd[1468]: Accepted password for vagrant from 192.168.50.1 port 61816 ssh2
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session opened for user vagrant by (uid=0)
Feb 13 10:14:34 spaaza-dev sshd[1636]: Received disconnect from 192.168.50.1: 11: disconnected by user
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session closed for user vagrant
Feb 13 10:16:44 spaaza-dev sshd[1764]: Authentication refused: bad ownership or modes for directory /home/vagrant

Entré para ver los permisos para /home/vagrant:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

No está bien, algo más que había estado haciendo había cambiado sin darme cuenta los permisos del directorio /home/vagrant. Lo siguiente solucionó el problema:

# chmod 755 vagrant

drwxr-xr-x  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

Después de eso apagué la máquina, la encendí de nuevo y vagabundo hizo su trabajo bien. :-)

Respuesta3

Intente copiar elclave pública vagabunda e inseguraen el archivo .ssh/authorized_keysen el cuadro de invitados.

Espero que esto resuelva tu problema de ssh.

Si desea hacerlo seguro, puede hacerlo copiando su propio .ssh/id_rsa.pub en el archivo antes mencionado. Y estableciendo el

config.ssh.private_key_path = '~/.ssh/id_rsa'

en tu Vagrantfile.

Respuesta4

Tuve problemas similares. Finalmente lo resolví mediante:

  • Asegurarse de que Vagrant y Virtualbox estuvieran actualizados
  • Asegurarse de que VirtualBox Guest Additions estuviera actualizado instalando vagrant-vbguestel complementoGitHubrubígemas:

    vagrant plugin install vagrant-vbguest
    

información relacionada