迷惑なボックスに新しいSSHキーペアを作成するのではなく、エージェント転送を使用して、ホストマシンにあるキーペアを再利用したいと思います。Vagrantfileでconfig.ssh.forward_agentをTRUEに設定してから、VMを再起動して、以下を使用してみました。
vagrant ssh -- -A
...しかし、gitチェックアウトを実行しようとすると、パスワードの入力を求められます。私が見逃しているものはありますか?
迷惑なボックスに新しいSSHキーペアを作成するのではなく、エージェント転送を使用して、ホストマシンにあるキーペアを再利用したいと思います。Vagrantfileでconfig.ssh.forward_agentをTRUEに設定してから、VMを再起動して、以下を使用してみました。
vagrant ssh -- -A
...しかし、gitチェックアウトを実行しようとすると、パスワードの入力を求められます。私が見逃しているものはありますか?
回答:
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
Vagrant VMに公開鍵を追加することを忘れないでください。あなたはそれをコピー&ペーストするか、ssh-copy-idのようなツールを使用して行うことができますconfig.ssh.private_key_path = "~/.ssh/id_rsa"
VagrantがハングアップしWaiting for VM to boot
ます。
config.ssh.private_key_path = [ '~/.vagrant.d/insecure_private_key', '~/.ssh/id_rsa' ]
Vagrantfileに追加します
Vagrant::Config.run do |config|
# stuff
config.ssh.forward_agent = true
end
config.ssh.forward_agent
が設定ファイルに追加されたことを明確に述べているので、この回答はどのような新しい情報を提供していますか?リンクも問題になっています。
1.4.3では上記の返信でこれを処理していましたが、1.5では処理を停止しました。ssh-add
1.5で完全に動作するように実行する必要があります。
ここでは、次の行を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-25640783
最近vagrant-aws
Vagrant 1.1.5でプラグインを試してみたところ、SSHエージェントの転送で問題が発生しました。VagrantはIdentitiesOnly=yes
それをに変更するオプションなしで強制していることがわかりましたno
。これにより、Vagrant Vagrantfile
はAWSプロバイダー用にリストされた秘密キーのみを参照するように強制されました。
私の経験をブログに書きました。ある時点でプルリクエストになる可能性があります。
Vagrant up
ますか?今、私はマシンを作成し、手動でログインして、公開鍵を/home/vagrant/.ssh/authorized_keysに追加する必要があります
VMが独自のSSHエージェントを起動しないことを確認します。私はこの行を私の中に入れました~/.profile
eval `ssh-agent`
それを削除した後、SSHエージェント転送が機能しました。
実際の問題は、デフォルトのポートフォワードとして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 vagrant@192.168.2.101(自分のホストIPアドレスに変更、dud)が正常に機能します。私に感謝してください、ただ私にLeifengと呼んでください!
Windowsでは、問題はVagrantがgit-bashのssh-agentと通信する方法を知らないことです。ただし、PuTTYのPageantの使用方法は知っています。したがって、Pageantが実行中でSSHキーが読み込まれている限り、そしてconfig.ssh.forward_agentを設定している限り、これは機能するはずです。
詳細については、このコメントを参照してください。
Pageantを使用している場合、Vagrantfileを更新してWindowsでSSHキーをコピーする回避策は不要になりました。