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


23

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 de sudo.

He generado claves públicas / privadas (vía ssh-keygen) en el host y he movido la clave pública al authorized_keysarchivo en el invitado. Y he probado un SSH sin contraseña.

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

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

Lo que da como resultado el mensaje de error siguiente:

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
vagrant@127.0.0.1's password: 

??

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

¿Cómo obtengo claves ssh privadas para que funcionen correctamente con vagabundo? ¿Qué hacer en el host, qué hacer en 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 vagrant halt. Aquí está la salida:

$ 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.

Respuestas:


21

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

caja de ssh a vagabundo con pwd predeterminado

$ 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, guarde el archivo y salga del cuadro

vagrant@lucid64:~$ exit

De vuelta a la máquina local

$ vagrant halt
$ vagrant up

Esto funciono para mi


Gracias por esto. Sin embargo, me pregunto ¿qué pasaría si es posible ingresar a una caja como usuario diferente vagranty usar el par de claves pub / priv? Además, ¿puede establecer la ruta a la clave ssh privada deseada desde el Vagrantfile de esta manera ?
rhodee

2
No puedo encontrar la carpeta 'incluir'. Acabo de encontrar la carpeta 0, luego virtualbox, luego 4 archivos: box.ovf, box-disk1.vmdk, metadata.json, Vagranfile. ¿Alguna idea de qué hacer entonces?
Darius.V

3

Tuve el mismo problema, aunque no se debió a problemas clave de SSH. Al iniciar la máquina, Virtualbox funcionó y educó bien al invitado. Pude SSH en la máquina yo mismo, y vagrant sshtrabajé aunque me pidió una contraseña. Ingresé 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 es bueno, algo más que había estado haciendo había cambiado sin darse 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 volví a encender y el vagabundo hizo lo suyo. :-)


Buen consejo. También tuve que hacerlochmod -R 755 /home/vagrant/.ssh
wisbucky

2

Intente copiar la clave pública insegura vagabunda en el archivo .ssh/authorized_keysen el cuadro de invitado.

Espero que esto resuelva tu problema ssh.

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

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

en tu Vagrantfile.


2

Para cualquiera que tenga este problema. Me llevó años arreglarlo. (¡Sin embargo, la solución es fácil!) Entonces, según la documentación de Vagrant, hay una contraseña predeterminada para el usuario 'vagabundo' que es 'vagabundo' sin las comillas simples. Puede leer más sobre el mismo en su sitio web oficial http://docs.vagrantup.com/v2/boxes/base.html


2

Tuve problemas similares. Finalmente lo resolví por:

  • Asegurarse de que Vagrant y Virtualbox estén actualizados
  • Asegúrese de que VirtualBox Guest Additions esté actualizado mediante la instalación del vagrant-vbguestcomplemento :GitHub RubyGems

    vagrant plugin install vagrant-vbguest
    

0

Siga los pasos para resolver el problema en Mac OS High Sierra: -

  1. Estoy usando la versión vagabunda 5.X
  2. En primer lugar, descargue la caja virtual y no la instale.
  3. Vaya a Preferencia del sistema -> privacidad y haga clic en permitir descarga por América.
  4. Bloquee los cambios anteriores e instale la caja virtual.
  5. Recibirá el mensaje de instalación exitosa para su caja virtual.
  6. Ahora ve a terminal type vagrant up --vision
  7. Comenzará a ejecutar scripts si tiene alguno y descargará la caja virtual por usted. 8. Recibirá el mensaje 'Listo'

  8. Asegúrese de que la caja virtual esté instalada correctamente, luego solo ejecute el comando vagabundo. si tiene problemas para desinstalar la caja virtual ejecutando el script de desinstalación que viene con el paquete e intente instalarlo nuevamente.

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.