Ansibleを使用したGitHubssh構成を理解しようとしています(Ansible:Up&Runningの本に取り組んでいます)。私は2つの問題に直面しています。
許可が拒否されました(公開鍵) -_ansible-playbook mezzanine.yml
_プレイブックを最初に実行したときに、許可が拒否されました:
_failed: [web] => {"cmd": "/usr/bin/git ls-remote '' -h refs/heads/HEAD", "failed": true, "rc": 128}
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
msg: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
FATAL: all hosts have already failed -- aborting
_
わかりました、十分に公平です、私は何人かの人々がこの問題を抱えているのを見ます。そこで、SSHでGitを実行する際の付録Aにジャンプすると、ssh-agentを実行し、id_rsa公開鍵を追加するように指示されました。
_eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa
_
出力:_Identity Added
_私は_ssh-agent -l
_を実行してチェックし、長い文字列を取得しました:_2048 e3:fb:...
_しかし、同じ出力を取得しました。そこで、sshキーの生成とトラブルシューティングに関するGithubのドキュメントを確認し、ホストマシンのssh構成ファイルを更新することを推奨しました。
_Host github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes
_
しかし、これでも同じエラーが発生します。したがって、この時点で、それが私のrsaファイルであると考え始め、それが2番目の問題につながります。
キー生成の問題-Githubテストで別の「アクセスが拒否されました(公開キー)」エラーがスローされたため、使用する追加の証明書を生成しようとしました。
_Warning: Permanently added the RSA Host key for IP address '192.30.252.131' to the list of known hosts.
Permission denied (publickey).
_
Githubの指示に最初から従い、別の名前で新しいキーを生成しました。
_ssh-keygen -t rsa -b 4096 -C "[email protected]"
_
パスフレーズを入力せず、git_rsa.pubという名前で.sshフォルダーに保存しました。同じテストを実行して、次の結果を得ました。
_$ ssh -i ~/.ssh/git_rsa.pub -T [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/antonioalaniz1/.ssh/git_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: ~/.ssh/github_rsa.pub
Permission denied (publickey).
_
権限を確認し、ファイルに対して_chmod 700
_を実行しましたが、それでもPermission denied (publickey)
を取得します。 Githubアカウントにキーを入力しようとしましたが、最初に、キーファイルを_ssh-rsa
_で始める必要があるというメッセージが表示されました。そこで私は調査とハッキングを始めました。ファイルに長い文字列を入力することから始めました(--BEGIN PRIVATE KEY--で始まりましたが、失敗した後、その部分を省略しました)。ただし、Githubは無効であるとして、それを受け入れていません。
これはYAMLファイルの私のAnsibleコマンドです:
_- name: check out the repository on the Host
git: repo={{ repo_url }} dest={{ proj_path }} accept_hostkey=yes
vars:
repo_url: [email protected]:lorin/mezzanine-example.git
_
これは、ForwardAgentが構成された私のansible.cfgファイルです。
_[defaults]
hostfile = hosts
remote_user = vagrant
private_key_file = .vagrant/machines/default/virtualbox/private_key
Host_key_checking = False
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o ForwardAgent=yes
_
ボックスはMacOSを使用したUbuntuTrusty64です。誰かが私にファイルのアクセス許可やGithubキーの生成を教えてくれたら、それをいただければ幸いです。
別のバグを修正するためにtransport = paramiko
にansible.cfg
がありましたが、ForwardAgent=yes
で問題が発生しているようです。トランスポートを削除したところ、再び機能しています。
~/.ssh/
ディレクトリ、~/.ssh/config
ファイルを並べ替える必要があります。公開鍵がデフォルト名(ìd_rsa.pub
、id_ed25519.pub
、id_dsa.pub
)の場合、IdentifyFile
は必要ありません。ansible.cfg
ファイルがあるかどうかを確認します。これは、デフォルトの/etc/ansible/ansible.cfg
構成よりも優先されます。~/.ssh/id_rsa
プライベートファイル用です(私は0x600
で私のものを持っています)。オフトピック:「ボックスはMacOSを使用するUbuntuTrusty64です」?!?!