run ssh vagrant

run - SSH en Vagrant Box con diferente nombre de usuario



vagrant up (4)

En lugar de irrumpir en mi máquina virtual Vagrant con un nombre de usuario y contraseña "vagos", me gustaría usar kevin / kevin.

Vagrantfile mi Vagrantfile para incluir:

config.ssh.username = "kevin"

Luego, ejecuté la vagrant reload .

El siguiente resultado apareció:

[default] Waiting for machine to boot. This may take a few minutes... Timed out while waiting for the machine to boot. This means that Vagrant was unable to communicate with the guest machine within the configured ("config.vm.boot_timeout" value) time period. This can mean a number of things.

Sin embargo, todavía podía entrar en mi caja vagabundo usando vagrant/vagrant , pero no podía entrar en la caja con un nombre de usuario y contraseña de kevin / kevin o kevin / vagabundo.

Tenga en cuenta que también probé esta respuesta ( https://stackoverflow.com/a/9924122/409976 ), pero solo pude ingresar al cuadro con el nombre de usuario vagrant , no kevin (aunque esté especificado en el Vagrantfile ).

¿Cómo puedo configurar mi Vagrantfile para que pueda ssh usando el nombre de usuario kevin ?


Crea un archivo vago como el siguiente. Tenga en cuenta que estamos iniciando el usuario vagabundo para cambiar inmediatamente al usuario ''kevin'' que creamos.

bootstrap = <<SCRIPT useradd -m kevin --groups sudo su -c "printf ''cd /home/kevin/nsudo su kevin'' >> .bash_profile" -s /bin/sh vagrant SCRIPT Vagrant.configure("2") do |config| config.vm.box = "bento/ubuntu-16.04" config.vm.host_name = "kevin" config.vm.provision "shell", inline: "#{bootstrap}", privileged: true end

ahora ssh en el vm:

$ vagrant ssh Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-83-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 0 packages can be updated. 0 updates are security updates. To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. kevin@kevin:/home/vagrant$


Otra solución, después de agregar al usuario a Vagrant a través de su secuencia de comandos de suministro:

## add kevin useradd -m -s /bin/bash -U kevin -u 666 --groups wheel cp -pr /home/vagrant/.ssh /home/kevin/ chown -R kevin:kevin /home/kevin echo "%kevin ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/kevin

agregue esto a su archivo de Vagrant:

VAGRANT_COMMAND = ARGV[0] if VAGRANT_COMMAND == "ssh" config.ssh.username = ''kevin'' end

Ahora Vagrant usará el usuario vagrant predeterminado para aprovisionar su máquina virtual, pero una vez que esté activo, puede usar vagrant ssh simple para iniciar sesión como kevin través de ssh-key Vagrant predeterminado.

De esta forma puede enviar su Vagrantfile deseado y los usuarios solo pueden decir vagrant up y kevin automáticamente se vuelve listo para usar.


Puedes ver la caja usando vagrant pero NO kevin , eso es lo que se espera.

La mayoría de las cajas base Vagrant solo tienen 2 usuarios con acceso SSH, root y vagrant . Ambos usan vagrant como contraseña, además, el vagrant está configurado para la autenticación de clave pública utilizando el par de claves inseguro (¿por qué? Ver Vagrant inseguridad de forma predeterminada? ) Proporcionado en el proyecto Vagrant en GitHub.

Para poder iniciar sesión como kevin , deberá ingresar al cuadro y crear el usuario ( useradd -m -s /bin/bash -U kevin ) primero, configure la autenticación de clave pública (muchas maneras, por ejemplo, ssh-copy-id , Lo dejo en tus manos.)

Debería poder ingresar al cuadro después de crear el usuario que utiliza vagrant ssh si establece apropiadamente config.ssh.username en Vagrantfile .

Por supuesto, puede ingresar ssh manualmente en el cuadro (suponga que NAT está en uso)

ssh -p 2222 kevin@localhost

o (en Linux)

ssh -p 2222 -i /opt/vagrant/embedded/gems/gems/vagrant-1.5.1/keys/vagrant.pub vagrant@localhost


Un poco de hack, pero podrías agregar la línea sudo su - kevin a tu archivo .bash_profile y agregar kevin al archivo sudoers sin contraseña.

Esto cambiará el usuario actual a kevin cuando inicie sesión como el usuario vagabundo desde la línea de comando.

La ventaja de este enfoque es que NAT no necesita estar habilitado.