Nozioni di base su SSH su VM Vagrant


23

Sto costruendo una macchina vagabonda (Ubuntu 12.04) con i seguenti requisiti:

  • Accesso SSH tramite Vagrant a un utente con privilegi sudo.

Ho generato le chiavi pubbliche / private (tramite ssh-keygen) sull'host e ho spostato la chiave pubblica nel authorized_keysfile sul guest. E ho provato un SSH senza password.

Accadono un paio di cose che scrivo vagrant sshcon chiavi SSH abilitate con password:

  • Devo digitare la mia frase chiave sul computer host per SSH nella VM ospite.
  • Ogni volta che scrivo la frase chiave corretta non viene accettata.

Il risultato è il seguente messaggio di errore:

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.

Quindi ho provato ssh senza password.

vagrant ssh
vagrant@127.0.0.1's password: 

??

Non ho mai creato un utente vagabondo! Dovrebbe essere user@hostnamecome l'avevo impostato e posso confermare che funziona quando avvio la VM in VirtualBox.

Come posso ottenere chiavi ssh private per funzionare correttamente con Vagrant? Cosa fare sull'host, cosa fare sull'ospite?

Aggiornare

In VirtualBox la VM è attiva ma non posso eseguire nessuno dei seguenti comandi dalla console di Vagrant oltre ai problemi con vagrant ssh:

vagrant up vagrant halt

L'unico comando vagabondo che funziona è vagrant suspend. Quando lo uso posso effettivamente arrestare la macchina tramite vagrant halt. Ecco l'output:

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

Risposte:


21

Sto aggiungendo questa soluzione per chiunque arrivi a questa discussione:

Per prima cosa apri questo file sul computer host:

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

Verificare che config.ssh.private_key_pathsia impostato sul file della chiave privata. Altrimenti aggiornalo

scatola da ssh a vagrant con pwd predefinito

$ vagrant ssh (default pwd = ‘vagrant’]

Una volta nella scatola:

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

Aggiungi la tua chiave pubblica a questo file, salva il file ed esci dalla casella

vagrant@lucid64:~$ exit

Torna al computer locale

$ vagrant halt
$ vagrant up

Questo ha funzionato per me


Grazie per questo - mi chiedo se cosa succede se è possibile accedere a una casella come utente diverso da vagrante utilizzare la coppia di chiavi pub / priv? Inoltre puoi impostare il percorso della chiave ssh privata desiderata dal Vagrantfile in questo modo ?
Rhodee,

2
Non riesco a trovare la cartella 'include'. Trovo solo la cartella 0, quindi virtualbox, quindi 4 file: box.ovf, box-disk1.vmdk, metadata.json, Vagranfile. Qualche idea su cosa fare allora?
Darius.V,

3

Ho avuto lo stesso problema anche se non era dovuto a problemi chiave di SSH. All'avvio della macchina, Virtualbox ha funzionato e ha portato l'ospite bene. Sono stato in grado di accedere a SSH direttamente nella macchina e vagrant sshho funzionato sebbene mi chiedesse una password. Ho effettuato l'accesso e ho trovato quanto segue in /var/log/auth.log sul guest:

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

Sono andato a cercare i permessi per / home / vagrant:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

Non va bene, qualcos'altro che avevo fatto aveva inavvertitamente cambiato i permessi della directory / home / vagrant. Di seguito è stato risolto il problema:

# chmod 755 vagrant

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

Dopodiché ho spento la macchina, l'ho riavviata e il vagabondo ha fatto bene. :-)


Bel consiglio. Ho anche dovuto farechmod -R 755 /home/vagrant/.ssh
wisbucky

2

Prova a copiare la chiave pubblica insicura del vagabondo nel file .ssh/authorized_keysnella casella ospite.

Spero che questo risolva il tuo problema SSH.

Se vuoi renderlo sicuro, puoi farlo copiando il tuo .ssh / id_rsa.pub nel suddetto file. E impostando il

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

nel tuo Vagrantfile.


2

Per chiunque abbia questo problema. mi ci sono voluti anni per risolvere. (Eppure la correzione è semplice !!) Quindi, secondo la documentazione di Vagrant, esiste una password predefinita per l'utente 'vagrant' che è 'vagrant' senza le virgolette singole. puoi leggere di più sullo stesso sito Web ufficiale http://docs.vagrantup.com/v2/boxes/base.html


2

Ho avuto problemi simili. Alla fine l'ho risolto con:

  • Assicurarsi che Vagrant e Virtualbox siano entrambi aggiornati
  • Assicurarsi che VirtualBox Guest Additions fosse aggiornato installando il vagrant-vbguestplugin :GitHub RubyGems

    vagrant plugin install vagrant-vbguest
    

0

Seguire i passaggi per risolvere il problema in Mac OS High Sierra: -

  1. Sto usando la versione 5.X di Vagrant
  2. prima di tutto scarica la scatola virtuale e non installarla.
  3. Vai a Preferenze di Sistema -> Privacy e fai clic su Consenti download dall'America ..
  4. Blocca le modifiche sopra e installa la scatola virtuale.
  5. Riceverai il messaggio di installazione eseguita correttamente per la tua scatola virtuale.
  6. Ora vai al tipo di terminale vagrant up --provision
  7. Inizierà l'esecuzione di script se ne hai e scaricherà la scatola virtuale per te. 8.Verrà visualizzato il messaggio "Fine"

  8. Assicurati che la scatola virtuale sia installata correttamente, quindi esegui solo il comando vagrant. se si riscontra un problema con la disinstallazione della scatola virtuale eseguendo lo script di disinstallazione fornito con pkg e riprovare a eseguire l'installazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.