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


23

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

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

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

Algumas coisas acontecem, digito vagrant sshcom chaves SSH ativadas por senha:

  • Eu tenho que digitar minha frase-chave na máquina host para SSH na VM do convidado.
  • Cada vez que digito a frase-chave correta, ela não é aceita.

O que resulta em Recebo a 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
vagrant@127.0.0.1's password: 

??

Eu nunca montei um usuário vagabundo! Deve ser user@hostnamecomo eu o havia configurado e posso confirmar os trabalhos ao inicializar a VM no VirtualBox.

Como faço para que as 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 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 o 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.

Respostas:


21

Estou adicionando esta solução para quem chega a este segmento:

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


Obrigado por isso - estou me perguntando, e se for possível ssh em uma caixa como usuário diferente vagrante usar o par de chaves pub / priv? Além disso, você pode definir o caminho para a chave ssh privada desejada no Vagrantfile assim ?
Rodrigues #

2
Não consigo encontrar a pasta 'incluir'. Acabei de encontrar a pasta 0, o virtualbox e os 4 arquivos - box.ovf, box-disk1.vmdk, metadata.json, Vagranfile. Alguma idéia do que fazer então?
Darius.V

3

Eu tive o mesmo problema, embora não tenha sido devido a problemas-chave do SSH. Ao iniciar a máquina, o Virtualbox funcionou e fez com que o hóspede se desse bem. Eu mesmo pude fazer o SSH na máquina e vagrant sshtrabalhei, apesar de ter me pedido uma senha. Entrei 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 procurar 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 problema foi corrigido:

# chmod 755 vagrant

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

Depois disso, desliguei a máquina, liguei novamente e o vagrant fez o que estava certo. :-)


Boa dica. Eu também tinha que fazerchmod -R 755 /home/vagrant/.ssh
wisbucky 10/01

2

Tente copiar a chave pública insegura e vaga no arquivo .ssh/authorized_keyspara a caixa de convidados.

Espero que isso resolva seu problema de ssh.

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

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

no seu arquivo Vagrant.


2

Para quem recebe esse problema. Levei anos para consertar. (No entanto, a correção é fácil!) Portanto, de acordo com a documentação do Vagrant, existe uma senha padrão para o usuário 'vagrant' que é 'vagrant' sem as aspas simples. você pode ler mais sobre o mesmo no site oficial http://docs.vagrantup.com/v2/boxes/base.html


2

Eu tive problemas semelhantes. Eventualmente eu resolvi isso por:

  • Certificando-se de que o Vagrant e o Virtualbox estejam atualizados
  • Para garantir que o VirtualBox Guest Additions esteja atualizado, instale o vagrant-vbguestplug - in :GitHub RubyGems

    vagrant plugin install vagrant-vbguest
    

0

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

  1. Estou usando o vagrant 5.X Version
  2. Antes de tudo, baixe a caixa virtual e não a instale.
  3. Vá para Preferências 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 concluída com êxito para sua caixa virtual.
  6. Agora vá para o tipo de terminal vagrant up --provision
  7. Ele começará a executar scripts, se houver, e faça o download da caixa virtual para você. 8.Você receberá a mensagem 'Concluído'

  8. Verifique se a caixa virtual está instalada corretamente e execute apenas o comando vagrant. se você enfrentar um problema, desinstale a caixa virtual executando o script de desinstalação que acompanha o pkg e tente instalar novamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.