Githubでホストされているアプリを展開するようにCapistrano 3.1を構成しようとしています。
Capistrano Documentation をフォローしていますssh -A [email protected] 'git ls-remote [email protected]:my_user/my_repo.git'
:
18f38afz261df35d462f7f4e2ca847d22f148a06 HEAD
18f38afz261df35d462f7f4e2ca847d22f148a06 refs/heads/master
しかしながら、 ssh [email protected] 'git ls-remote [email protected]:my_user/my_repo.git'
失敗:
Permission denied (publickey).
Capistrano docsが提案する
「ホストキーの検証に失敗しました」というエラーが表示された場合。サーバーにログインし、デプロイユーザーとしてコマンドssh [email protected]を実行して、既知のホストのリストにgithub.comを追加します。
そう、私はそうしようとしたが、私は得る
ssh [email protected]
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ドキュメントの状態:
-A Enables forwarding of the authentication agent connection. This can also be specified on a per-Host basis in a configuration file.
構成ファイルでホストごとに指定するにはどうすればよいですか?
私のローカルマシンはMac OSX Mavericksを実行しています。 VPSはUbuntu 12.04を実行します
ありがとう。
ローカルコンピューターの.ssh/configファイルに次の行を追加します
Host Server_Address
ForwardAgent yes
Ssh-addリストにリストされているかどうかにかかわらず、ローカルキーを確認します。
ssh-add -L
SSHエージェントにキーを追加しない場合
ssh-add -K
リモートサーバーに接続する
ssh -v username@Server_Address
次のコマンドを実行して、SSHエージェント転送が有効になっていることを確認します。ソケットファイルをリストする必要があります
echo "$SSH_AUTH_SOCK"
GitHubに対して接続テストを実行する
ssh -T [email protected]
対象のGitリポジトリに対してlsリモートテストを実行する
git ls-remote --heads [email protected]:account/repo.git
最後にログアウトして、ローカルマシンから以下を実行します
cap production git:check
次を〜/ .ssh/configに追加します
Host one-of-my-servers.com
ForwardAgent yes
Sshキーを追加してからターミナルを終了すると、次にターミナルを開いたときに再度追加する必要があります。