Zamiast tworzyć nową parę kluczy SSH w pudełku włóczęgi, chciałbym ponownie użyć pary kluczy, którą mam na moim komputerze głównym, używając przekazywania agentów . Próbowałem ustawić config.ssh.forward_agent na TRUE w pliku Vagrantfile, a następnie ponownie uruchomiłem maszynę wirtualną i próbowałem użyć:
vagrant ssh -- -A
... ale nadal pojawia się monit o podanie hasła, gdy próbuję wykonać transakcję git. Masz jakiś pomysł, czego mi brakuje?
ssh
virtualbox
forwarding
ssh-keys
vagrant
Matt V.
źródło
źródło
Odpowiedzi:
Używam vagranta 2 na OS X Mountain Lion.
config.ssh.private_key_path
to Twój lokalny klucz prywatnyssh-add -L
, jeśli nie ma go na liście, dodaj go za pomocąssh-add ~/.ssh/id_rsa
~/.ssh/authorized_keys
na Vagrant VM. Możesz to zrobić kopiując i wklejając lub używając narzędzia takiego jak ssh-copy-idźródło
config.ssh.private_key_path = "~/.ssh/id_rsa"
sprawia, że Vagrant się trzymaWaiting for VM to boot
.config.ssh.private_key_path = [ '~/.vagrant.d/insecure_private_key', '~/.ssh/id_rsa' ]
ssh-add -K
działającym (jak równieżconfig.ssh.forward_agent = true
). Zobacz tę odpowiedźDodaj go do pliku Vagrantfile
Zobacz dokumentację
źródło
config.ssh.forward_agent
do swojego pliku konfiguracyjnego, więc jakich nowych informacji dostarcza ta odpowiedź? Nawet link jest już w pytaniu.Oprócz dodania „config.ssh.forward_agent = true” do pliku vagrant upewnij się, że komputer hosta jest skonfigurowany do przekazywania agentów. Github zapewnia dobry przewodnik po tym. (Zapoznaj się z sekcją dotyczącą rozwiązywania problemów).
źródło
Miałem to działające z powyższymi odpowiedziami na 1.4.3, ale przestałem działać na 1.5. Muszę teraz działać
ssh-add
w pełni z wersją 1.5.Na razie dodaję następujący wiersz do mojego skryptu obsługi administracyjnej ansible.
- name: Make sure ssk keys are passed to guest. local_action: command ssh-add
Stworzyłem także streszczenie mojej konfiguracji: https://gist.github.com/KyleJamesWalker/9538912
źródło
Jeśli pracujesz w systemie Windows, przekazywanie SSH w Vagrant nie działa domyślnie (z powodu błędu w net-ssh). Zobacz ten konkretny raport o błędzie Vagrant: https://github.com/mitchellh/vagrant/issues/1735
Istnieje jednak obejście! Po prostu skopiuj automatycznie swój lokalny klucz SSH do maszyny wirtualnej Vagrant za pomocą prostego skryptu aprowizacji w pliku VagrantFile. Oto przykład: https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783
źródło
Kiedy niedawno wypróbowaliśmy
vagrant-aws
wtyczkę w Vagrant 1.1.5, napotkaliśmy problem z przekazywaniem agentów SSH. Okazało się, że Vagrant forsowałIdentitiesOnly=yes
bez możliwości zmiany nano
. To zmusiło Vagranta do spojrzenia tylko na klucz prywatny, który wymieniliśmy wVagrantfile
dostawcy AWS.Nasze doświadczenia opisałem w poście na blogu . W pewnym momencie może przekształcić się w żądanie ściągnięcia.
źródło
Vagrant up
? W tej chwili muszę stworzyć maszynę, ręcznie zalogować się, a następnie dodać mój klucz publiczny do /home/vagrant/.ssh/authorized_keysUpewnij się, że maszyna wirtualna nie uruchamia własnego agenta SSH. Miałem tę linię w moim
~/.profile
Po jego usunięciu działało przekazywanie agentów SSH.
źródło
Prawdziwym problemem jest to, że Vagrant używa standardu 127.0.0.1:2222 jako domyślnego przekierowania portów. Możesz dodać jeden (nie 2222, 2222 jest już domyślnie zajęte)
config.vm.network "forwarded_port", gość: 22, host: 2333, host_ip: "0.0.0.0"
„0.0.0.0” jest sposobem przyjmowania żądań z połączenia zewnętrznego. wtedy ssh -p 2333 [email protected] (zmiana na własny adres IP hosta, dud) będzie działać dobrze. Dziękuj mi, po prostu mów mi Leifeng!
źródło
W systemie Windows problem polega na tym, że Vagrant nie wie, jak komunikować się z agentem ssh-agent git-bash. Wie jednak, jak używać Pageant PuTTY. Tak więc, dopóki Pageant działa i załadował twój klucz SSH, i tak długo, jak długo ustawiłeś config.ssh.forward_agent, powinno to działać.
Zobacz ten komentarz, aby uzyskać szczegółowe informacje.
Jeśli używasz Pageant, obejście aktualizacji Vagrantfile w celu skopiowania kluczy SSH w systemie Windows nie jest już konieczne.
źródło