Vagrant Boxに新しいSSHキーペアを作成するのではなく、ホストマシンにあるキーペアを agent forwarding を使用して再利用したいと思います。 Vagrantfileで config.ssh.forward_agent をTRUEに設定してみた後、VMを再起動して、以下を使用してみました:
vagrant ssh -- -A
...しかし、git checkoutを実行しようとすると、パスワードの入力を求められます。私は何が欠けているのでしょうか?
OS X Mountain Lionでvagrant 2を使用しています。
Vagrant.configure("2") do |config|
config.ssh.private_key_path = "~/.ssh/id_rsa"
config.ssh.forward_agent = true
end
config.ssh.private_key_path
はローカルの秘密鍵ですssh-add -L
で確認できます。リストにない場合は、ssh-add ~/.ssh/id_rsa
で追加してください~/.ssh/authorized_keys
に公開キーを追加することを忘れないでください。コピーアンドペーストまたは ssh-copy-id のようなツールを使用して実行できます。Vagrantfileに追加します
Vagrant::Config.run do |config|
# stuff
config.ssh.forward_agent = true
end
"config.ssh.forward_agent = true"をvagrantファイルに追加することに加えて、ホストコンピューターがエージェント転送用に設定されていることを確認してください。 Githubは、このための 良いガイド を提供します。 (トラブルシューティングのセクションをご覧ください)。
私はこれを1.4.3で上記の応答で動作させましたが、1.5では動作を停止しました。 1.5で完全に動作するには、ssh-add
を実行する必要があります。
今のところ、次の行をansibleプロビジョニングスクリプトに追加します。 - name: Make sure ssk keys are passed to guest. local_action: command ssh-add
セットアップの要点も作成しました: https://Gist.github.com/KyleJamesWalker/9538912
Windowsを使用している場合、VagrantでのSSH転送はデフォルトで正しく機能しません(net-sshのバグのため)。この特定のVagrantバグレポートを参照してください: https://github.com/mitchellh/vagrant/issues/1735
ただし、回避策があります! VagrantFileの単純なプロビジョニングスクリプトを使用して、ローカルSSHキーをVagrant VMに自動コピーするだけです。以下に例を示します。 https://github.com/mitchellh/vagrant/issues/1735#issuecomment-2564078
Vagrant 1.1.5でvagrant-aws
プラグインを最近試したとき、SSHエージェント転送で問題が発生しました。 VagrantはIdentitiesOnly=yes
をno
に変更するオプションなしで強制していたことが判明しました。これにより、VagrantはAWSプロバイダーのVagrantfile
にリストされている秘密キーのみを見るようになりました。
ブログ投稿 で経験を書きました。ある時点でプルリクエストになる場合があります。
本当の問題は、127.0.0.1:2222をデフォルトのポートフォワードとして使用するVagrantです。 1つ追加できます(2222ではなく、2222はデフォルトですでに占有されています)
config.vm.network "forwarded_port"、guest:22、Host:2333、Host_ip: "0.0.0.0"
「0.0.0.0」は、外部接続からのリクエスト取得方法です。 ssh -p 2333 [email protected](独自のホストIPアドレスに変更、dud)は正常に動作します。感謝してください、Leifengと呼んでください!
Windowsでは、問題はVagrantがgit-bashのssh-agentと通信する方法を知らないことです。ただし、PuTTYのPageantの使用方法は知っています。したがって、Pageantが実行され、SSHキーをロードしている限り、またconfig.ssh.forward_agentを設定している限り、これは機能するはずです。
詳細については this comment をご覧ください。
Pageantを使用する場合、 WindowsでVagrantfileを更新してSSHキーをコピーする回避策 は不要になりました。
VMが独自のSSHエージェントを起動しないことを確認してください。 ~/.profile
にこの行がありました
eval `ssh-agent`
削除した後、SSHエージェントの転送は機能しました。