2015-09-23 6 views
7

通常、vagrant sshを使用して、バージョン管理対象のVMにsshを実行できます。障害のあるマシンにSSHを有効にする

  1. あなたは 認証するためにベイグラントによって生成されたinsecure_private_keyを使用することができます:2つのオプションがあります。
  2. 独自のプライベートキーを使用する - config.ssh.forward_agenttrueに設定され、VMが 正しく

私は2番目のオプションを使用するように構成されていることを提供します。 S私がvagrant sshを実行すると、私は私のカスタム秘密鍵でマシンにsshを送ります。

今私は、不自然なSSHを自分のバージュマシンに入れておく必要があります。私はそれにVagrantfileを使用したくありません。

は、だから私は、実行:

ansible-playbook -i hosts/development --private-key=~/.ssh/id_rsa -u vagrant dev.yml

そして、私はこのエラーが返されます:

fatal: [192.168.50.5] => SSH Error: Permission denied (publickey). while connecting to 192.168.50.5:22

hosts/inventoryファイルはちょうど私のベイグラントVM(192.168.50.5)のIPを保持しています。

私はなぜ、AnsibleがVMにsshできないのか分かりません。 vagrant sshを実行するときとまったく同じユーザー(vagrant)とキー(id_rsa)を使用しています。

しかし、上記は実行できませんが、vagrant sshの問題はありません。

ご提案いただければ幸いです。

+0

あなたはポートが22ではなく2222年であることを確信していますか? – Vor

+0

私の答えの後にいくつかの可能性を研究した。私はあなたvmの迷惑メールユーザーのauthorized_keysであなたのpubkeyを設定していないと信じています。絶対に必要な場合を除き、私は迷惑メールのためにあなたの個人鍵を使用することはお勧めしません。 –

答えて

13

問題は恐らくあなたのhosts/inventoryファイル内にあります。あなたは、そこにあるAnonymousに適切な接続構成を追加し、保存して再実行する必要があります。

192.168.50.5 ansible_ssh_port=22 ansible_ssh_user=vagrant ansible_ssh_private_key_file=~/.ssh/id_rsa 

あなたのホストでansible_ssh_portがそれに応じてファイルを調整し、ポート22を使用していない場合。

また、あなたがバゲントであなたのパブキーをセットアップしていない可能性もあります。したがって、これも機能しません。これをテストするには、実行:あなたはあなたの秘密鍵を試すことができます前に、

vagrant ssh-config | grep IdentityFile 
# result should be your private key and not 
# .vagrant/machines/default/virtualbox/private_key 

あなたはベイグラントVMであなたのpubkeyを入れていない場合、あなたはそれを追加する必要があります。

参考:http://docs.ansible.com/ansible/intro_inventory.html#list-of-behavioral-inventory-parameters

参考:https://docs.vagrantup.com/v2/cli/ssh_config.html

+0

私がsshできない理由は、私が間違った秘密鍵ファイルを使用していたためです。使用する正しい鍵は 'vagrant ssh-config'で明らかになりました。ありがとうございました! – luqo33

+0

私はカスタムインベントリファイルを使って苦労していました。私の問題は、インベントリにホストを指定するときにカスタムポート番号を指定しなければならないということでした。 '[default] 127.0.0.1:2201'それ以外の場合は22になり、' ansible.cfg'や'Vagrantfile' – Hafiz

+0

@Hafizインベントリファイルで' ansible_ssh_port = 2201'を使うこともできます –