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

22

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

  • Acesso SSH via Vagrant a 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 arquivo authorized_keys no convidado. E eu tentei um SSH sem senha.

Algumas coisas acontecem Eu digito vagrant ssh com chaves SSH ativadas por senha:

  • Eu tenho que digitar meu keyphrase na máquina host para o SSH na VM Guest.
  • Cada vez que eu digito a frase-chave correta , ela 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 eu tentei ssh sem senha.

vagrant ssh
[email protected]'s password: 

??

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

Como faço para que chaves ssh privadas funcionem corretamente com o vagrant? O que fazer no host, o que fazer no convidado?

Atualizar

No VirtualBox, a VM está ativa, mas não consigo fazer nenhum dos seguintes comandos do console do 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.
    
por rhodee 25.05.2012 / 21:30

6 respostas

21

Estou adicionando esta solução para qualquer pessoa que venha 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_path está definido para o 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

    
por 14.08.2012 / 20:59
3

Eu tive o mesmo problema, embora não seja devido a problemas de chave SSH. Ao iniciar a máquina, o Virtualbox funcionou e trouxe o convidado bem. Eu era capaz de usar SSH na máquina, e vagrant ssh funcionou, embora me pedisse uma senha. Eu entrei e encontrei o seguinte em /var/log/auth.log no 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

Eu entrei para ver as permissões de / home / vagrant:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

Nada bom, outra coisa que eu estava fazendo inadvertidamente mudou 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, eu fechei a máquina, liguei de novo e o vagrant fez tudo bem. : -)

    
por 13.02.2015 / 11:35
2

Tente copiar a chave pública insegura do vagrant no arquivo .ssh/authorized_keys no caixa de convidados.

Espero que isso resolva o problema do ssh.

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

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

no seu Vagrantfile.

    
por 05.05.2013 / 09:23
2

Para quem consegue este problema. Demorei séculos para consertar. (No entanto, a correção é fácil!) Então, de acordo com a documentação do Vagrant, há uma senha padrão para o usuário 'vagrant' que é 'vagrant' sem as aspas simples. você pode ler mais sobre o mesmo em seu site oficial link

    
por 10.02.2015 / 09:48
2

Eu tive problemas semelhantes. Eventualmente eu resolvi isso por:

  • Certificar-se de que o Vagrant e o Virtualbox estavam atualizados
  • Certificar-se de que as Adições de Convidados do VirtualBox estavam atualizadas instalando o vagrant-vbguest plugin :

    vagrant plugin install vagrant-vbguest
    
por 29.04.2015 / 11:33
0

Siga as etapas para resolver o problema no Mac OS High Sierra: -

  1. Estou usando a versão 5.X do vagrant
  2. primeiro baixe a caixa virtual e não a instale.
  3. Ir para a preferência do sistema - > privacidade e clique em permitir download pela América ..
  4. Bloqueie as alterações acima e instale a caixa virtual.
  5. Você receberá a mensagem de instalação bem-sucedida para sua caixa virtual.
  6. Agora vá para o terminal tipo vagrant up --provision
  7. Ele começará a executar scripts se você tiver algum e baixar a caixa virtual para você. 8. Você receberá a mensagem 'Concluído'

  8. Verifique se a caixa virtual está instalada corretamente e só execute o comando vagrant. Se você enfrentar o problema de desinstalar a caixa virtual executando o script de desinstalação que vem com o pacote e tente instalar novamente.

por 27.08.2018 / 22:20