Em vez de criar um novo par de chaves SSH em uma caixa vagrant, gostaria de reutilizar o par de chaves que tenho em minha máquina host, usando o encaminhamento de agente . Tentei definir config.ssh.forward_agent como TRUE no Vagrantfile, reiniciei a VM e tentei usar:
vagrant ssh -- -A
... mas ainda recebo uma solicitação de senha quando tento fazer uma verificação do git. Alguma ideia do que estou perdendo?
ssh
virtualbox
forwarding
ssh-keys
vagrant
Matt V.
fonte
fonte
Respostas:
Estou usando o vagrant 2 no OS X Mountain Lion.
config.ssh.private_key_path
é a sua chave privada localssh-add -L
, se não estiver listado, adicione-o comssh-add ~/.ssh/id_rsa
~/.ssh/authorized_keys
Vagrant VM. Você pode copiar e colar ou usar uma ferramenta como ssh-copy-idfonte
config.ssh.private_key_path = "~/.ssh/id_rsa"
faz o Vagrant aguentarWaiting for VM to boot
.config.ssh.private_key_path = [ '~/.vagrant.d/insecure_private_key', '~/.ssh/id_rsa' ]
ssh-add -K
funcionou (e tambémconfig.ssh.forward_agent = true
). Ver esta respostaAdicione ao Vagrantfile
Veja a documentação
fonte
config.ssh.forward_agent
ao arquivo de configuração, então quais novas informações esta resposta está fornecendo? Até mesmo o link já está em questão.Além de adicionar "config.ssh.forward_agent = true" ao arquivo vagrant, certifique-se de que o computador host esteja configurado para encaminhamento de agente. O Github fornece um bom guia para isso. (Confira a seção de solução de problemas).
fonte
Tive que trabalhar com as respostas acima em 1.4.3, mas parei de funcionar em 1.5. Agora tenho que correr
ssh-add
para funcionar totalmente com 1.5.Por enquanto, adiciono a seguinte linha ao meu script de provisionamento ansible.
- name: Make sure ssk keys are passed to guest. local_action: command ssh-add
Também criei um resumo da minha configuração: https://gist.github.com/KyleJamesWalker/9538912
fonte
Se você estiver no Windows, o SSH Forwarding no Vagrant não funciona corretamente por padrão (devido a um bug no net-ssh). Veja este relatório de bug específico do Vagrant: https://github.com/mitchellh/vagrant/issues/1735
No entanto, existe uma solução alternativa! Simplesmente copie automaticamente sua chave SSH local para o Vagrant VM por meio de um script de provisionamento simples em seu VagrantFile. Aqui está um exemplo: https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783
fonte
Quando recentemente testamos o
vagrant-aws
plugin com o Vagrant 1.1.5, encontramos um problema com o encaminhamento do agente SSH. Descobriu-se que o Vagrant estava forçando,IdentitiesOnly=yes
sem opção, alterá-lo parano
. Isso forçou o Vagrant a olhar apenas para a chave privada listada noVagrantfile
para o provedor AWS.Escrevi nossas experiências em um blog . Isso pode se transformar em uma solicitação de pull em algum ponto.
fonte
Vagrant up
? Agora eu tenho que criar a máquina, fazer login manualmente e adicionar minha chave pública a /home/vagrant/.ssh/authorized_keysCertifique-se de que a VM não inicie seu próprio agente SSH. Eu tinha essa linha no meu
~/.profile
Após removê-lo, o encaminhamento do agente SSH funcionou.
fonte
O verdadeiro problema é o Vagrant usando 127.0.0.1:2222 como encaminhamento de porta padrão. Você pode adicionar um (não 2222, 2222 já está ocupado por padrão)
config.vm.network "forwarded_port", convidado: 22, host: 2333, host_ip: "0.0.0.0"
"0.0.0.0" é uma forma de aceitar a solicitação de uma conexão externa. então ssh -p 2333 [email protected] (mude para seu próprio endereço IP de host, dud) funcionará bem. Me agradeça, apenas me chame de Leifeng!
fonte
No Windows, o problema é que o Vagrant não sabe como se comunicar com o agente ssh do git-bash. No entanto, ele sabe como usar o Pageant do PuTTY. Portanto, contanto que o Pageant esteja em execução e tenha carregado sua chave SSH, e contanto que você tenha definido config.ssh.forward_agent, isso deve funcionar.
Veja este comentário para detalhes.
Se você usar o Pageant, a solução alternativa de atualizar o Vagrantfile para copiar as chaves SSH no Windows não é mais necessária.
fonte