Noções básicas de SSH em VMs Vagrant

Noções básicas de SSH em VMs Vagrant

Estou construindo uma máquina vagabundo (Ubuntu 12.04) com os seguintes requisitos:

  • Acesso SSH via Vagrant para um usuário com privilégios sudo.

Gerei chaves públicas/privadas (via ssh-keygen) no host e movi a chave pública para o authorized_keysarquivo no convidado. E tentei um SSH sem senha.

Algumas coisas acontecem quando digito vagrant sshcom chaves SSH habilitadas por senha:

  • Eu tenho que digitar minha frase-chave na máquina host para SSH na VM convidada.
  • Cada vez que digito ocorretofrase-chave não é aceita.

O que resulta na seguinte mensagem de erro:

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.

Então tentei o ssh sem senha.

vagrant ssh
[email protected]'s password: 

??

Eu nunca configurei um usuário vagabundo! Deve estar user@hostnamecomo eu configurei e posso confirmar que funciona quando inicializo a VM no VirtualBox.

Como faço para que as chaves SSH privadas funcionem corretamente com o Vagrant? O que fazer no anfitrião, o que fazer no convidado?

Atualizar

No VirtualBox, a VM está ativa, mas não consigo executar nenhum dos seguintes comandos do console vagrant, além dos problemas com vagrant ssh:

vagrant up vagrant halt

O único comando vagrant que funciona é vagrant suspend. Quando eu uso, posso parar a máquina via vagrant halt. Aqui está a saída:

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

Responder1

Estou adicionando esta solução para quem vem a este tópico:

Primeiro abra este arquivo na máquina host:

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

Verifique se config.ssh.private_key_pathestá definido para seu arquivo de chave privada. Se não atualizar isso

ssh para vagrant box com pwd padrão

$ vagrant ssh (default pwd = ‘vagrant’]

Uma vez na caixa:

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

Adicione sua chave pública a este arquivo, salve o arquivo e saia da caixa

vagrant@lucid64:~$ exit

Voltar para a máquina local

$ vagrant halt
$ vagrant up

Isso funcionou para mim

Responder2

Eu tive o mesmo problema, embora não fosse devido a problemas de chave SSH. Ao iniciar a máquina, o Virtualbox funcionou e deixou o convidado bem. Eu mesmo consegui fazer o SSH na máquina e vagrant sshtrabalhei, embora ela me pedisse uma senha. Fiz login e encontrei o seguinte em /var/log/auth.log no convidado:

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

Entrei para ver as permissões para /home/vagrant:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

Não é bom, outra coisa que eu estava fazendo alterou inadvertidamente as permissões do diretório /home/vagrant. O seguinte corrigiu o problema:

# chmod 755 vagrant

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

Depois disso, desliguei a máquina, liguei-a novamente e o vagrant fez seu trabalho perfeitamente. :-)

Responder3

Tente copiar ochave pública insegura vagabundano arquivo .ssh/authorized_keysna caixa de convidados.

Espero que isso resolva seu problema de ssh.

Se quiser torná-lo seguro, você pode fazê-lo copiando seu próprio .ssh/id_rsa.pub para o arquivo mencionado acima. E definindo o

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

no seu arquivo Vagrant.

Responder4

Eu tive problemas semelhantes. Eventualmente eu resolvi isso:

  • Certificando-se de que o Vagrant e o Virtualbox estejam atualizados
  • Certificando-se de que o VirtualBox Guest Additions estava atualizado instalando vagrant-vbguesto pluginGitHubRuby Gems:

    vagrant plugin install vagrant-vbguest
    

informação relacionada