Problema: spesso il primo comando che digito nelle mie caselle è su -
.
Domanda: come faccio a vagrant ssh
utilizzare l'utente root per impostazione predefinita?
Versione: vagrant 1.6.5
Problema: spesso il primo comando che digito nelle mie caselle è su -
.
Domanda: come faccio a vagrant ssh
utilizzare l'utente root per impostazione predefinita?
Versione: vagrant 1.6.5
Risposte:
Questo è utile:
sudo passwd root
per chiunque sia stato sorpreso dalla necessità di impostare prima una password di root in vagrant
Soluzione:
aggiungi quanto segue al tuo Vagrantfile
:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
Quando d' vagrant ssh
ora in poi, effettuerai il login come root
e dovresti aspettarti quanto segue:
==> mybox: Waiting for machine to boot. This may take a few minutes...
mybox: SSH address: 127.0.0.1:2222
mybox: SSH username: root
mybox: SSH auth method: password
mybox: Warning: Connection timeout. Retrying...
mybox: Warning: Remote connection disconnect. Retrying...
==> mybox: Inserting Vagrant public key within guest...
==> mybox: Key inserted! Disconnecting and reconnecting using new SSH key...
==> mybox: Machine booted and ready!
Aggiornamento 23 giugno 2015: funziona anche per la versione 1.7.2. La sicurezza delle chiavi è migliorata dalla 1.7.0; questa tecnica sovrascrive il metodo precedente che utilizza una chiave privata nota. Questa soluzione non è concepita per essere utilizzata per una casella accessibile pubblicamente senza adeguate misure di sicurezza prima della pubblicazione.
Riferimento:
vagrant ssh
? (dopo aver apportato le modifiche descritte) Vagrant versione 1.7.2
config.ssh.password
valore. dovresti essere in grado di commentare le config.ssh.*
righe appena aggiunte per accedere alla tua casella e quindi modificare la password di root tramite sudo passwd root
.
mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: Questa casella imposta una password di root casuale; si può vagrant ssh
e quindi sudo su
eseguire il root, ma (da quello che posso dire) le impostazioni di configurazione non funzionano su un nuovo vagrant up
utilizzo di questa VM.
Funziona se sei su ubuntu / trusty64 box:
vagrant ssh
Una volta che sei nella scatola di Ubuntu:
sudo su
Ora sei un utente root. Puoi aggiornare la password di root come mostrato di seguito:
sudo -i
passwd
Ora modifica la riga sottostante nel file /etc/ssh/sshd_config
PermitRootLogin yes
Inoltre, è conveniente creare il proprio nome utente alternativo:
adduser johndoe
Aspetta finché non chiede la password.
Se Vagrantfile
come di seguito:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
Ma vagabondo ti chiede ancora la password di root, molto probabilmente il box di base che hai usato non è configurato per consentire il login di root.
Ad esempio, la casella ubuntu14.04 ufficiale non è impostata PermitRootLogin yes
in /etc/ssh/sshd_config
.
Quindi se vuoi che una casella possa accedere come root di default (solo Vagrantfile, non più lavoro), devi:
Imposta una VM tramite nome utente vagrant
(qualunque sia il nome tranne root)
Accedi e modifica il file di configurazione sshd.
ubuntu: modifica /etc/ssh/sshd_config
, imposta PermitRootLogin yes
altri: ....
(Uso solo Ubuntu, sentiti libero di aggiungere soluzioni alternative per altre piattaforme)
Costruisci una nuova scatola di base:
vagrant package --base your-vm-name
questo crea un file package.box
Aggiungi quella scatola di base a vagabondo:
vagrant box add ubuntu-root file:///somepath/package.box
quindi, è necessario utilizzare questa casella di base per creare vm che consenta il login automatico come root.
Distruggi il vm originale di vagrant destroy
Modifica l'originale Vagrantfile
, cambia il nome della scatola in ubuntu-root
e il nome utente in root
, quindi vagrant up
creane uno nuovo.
Mi è costato del tempo per capirlo, è troppo complicato secondo me. Spero che vagabondo possa migliorare questo.
Non dimenticare che root è autorizzato a fare il login prima !!!
Inserisci il codice di configurazione di seguito nel /etc/ssh/sshd_config
file.
PermitRootLogin yes
Nota: utilizza questo metodo solo per lo sviluppo locale, non è sicuro . Puoi impostare la password e la configurazione ssh durante il provisioning della scatola. Ad esempio con debian/stretch64
box questo è il mio script di fornitura:
config.vm.provision "shell", inline: <<-SHELL
echo -e "vagrant\nvagrant" | passwd root
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
sed -in 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
service ssh restart
SHELL
Questo imposterà la password di root vagrant
e consentirà il login di root con password. Se stai usando private_network
say con indirizzo ip 192.168.10.37
, puoi ssh conssh root@192.168.10.37
Potrebbe essere necessario modificarlo echo
e i sed
comandi a seconda del sshd_config
file predefinito .
Aggiungendo questo al file Vagrantfile
funzionato per me. Queste righe sono l'equivalente del tuo inserimento sudo su -
ogni volta che effettui il login. Si noti che ciò richiede il reprovisioning della VM.
config.vm.provision "shell", inline: <<-SHELL
echo "sudo su -" >> .bashrc
SHELL
So che questa è una vecchia domanda, ma guardando la domanda originale, sembra che l'utente volesse solo eseguire un comando come root, questo è quello che devo fare quando stavo cercando una risposta e mi sono imbattuto nella domanda.
Quindi questo vale la pena sapere secondo me:
vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"
vagrant
è la password che viene ripetuta nel comando sudo, perché come tutti sappiamo, l'account vagabondo ha privilegi sudo e quando si sudo, è necessario specificare la password dell'account utente, non root..e, naturalmente, per impostazione predefinita, il la password dell'utente vagabondo è vagrant
!
Per impostazione predefinita, sono necessari i privilegi di root per l'arresto, quindi immagino che eseguire uno spegnimento sia un buon test.
Ovviamente non è necessario specificare un nome di server se ce n'è uno solo per quell'ambiente vagabondo. Inoltre, stiamo parlando della macchina virtuale vagabonda locale all'host, quindi non c'è davvero alcun problema di sicurezza che posso vedere.
Spero che questo ti aiuti.
vagrant destroy
vagrant up
Si prega di aggiungere questo al file vagabondo:
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'