minaを使用してプライベート リポジトリをデプロイしようとしています。
サーバーで公開 SSH キーを生成し、それを GitHub ユーザーに追加しました。サーバーにログインすると、git clone git@github.com:Access4all/a4aa2.git
. しかし、ローカル マシンから を実行するmina deploy
と、次のエラーが表示されます。
-----> Loading environment
-----> Creating a temporary build path
-----> Fetching new git commits
Warning: Permanently added the RSA host key for IP address '192.30.252.130' to the list of known hosts.
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
! ERROR: Deploy failed.
-----> Cleaning up build
私にとって奇妙に見えるのは、IP192.30.252.130
が既知のホストのリストに追加されているという事実ですが、手動でsshを実行する前にこれを行ったことがあります。そして、私のサーバーの IP は192.30.252.130
(bellatrix.uberspace.de) です!
私のdeploy.rb
構成セクションは次のようになります。
set :server_name, 'bellatrix'
set :user, 'a4aa2'
set :repository_name, 'a4aa2'
set :domain, "#{server_name}.uberspace.de"
set :deploy_to, "/home/#{user}/rails"
set :repository, "git@github.com:Access4all/#{repository_name}.git"
set :branch, 'master'
何か間違ったことを概念的に理解しましたか?
アップデート
手動で git clone を実行すると、パスフレーズが使用されることに気付きました。
[a4aa2@bellatrix tmp]$ git clone "git@github.com:Access4all/a4aa2.git"
Initialized empty Git repository in /home/a4aa2/tmp/a4aa2/.git/
Enter passphrase for key '/home/a4aa2/.ssh/id_rsa':
ミナが失敗したのはこれが原因だと思います。これは正常ですか?なぜパスフレーズを入力する必要があるのですか? どうすれば回避できますか?
アップデート
Step 3: Add your key to the ssh-agentに従って、パスフレーズを ssh-agent に保存できます。
しかし、そこに記載されている方法で保存できないようです。
次のように追加できます。
[a4aa2@bellatrix tmp]$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/a4aa2/.ssh/id_rsa:
Identity added: /home/a4aa2/.ssh/id_rsa (/home/a4aa2/.ssh/id_rsa)
そして、パスフレーズを入力せずにリポジトリを正常に複製できます。しかし、ログアウトして再度ログインした後、もう一度入力する必要があります。どういうわけか、セッション間で ssh-agent が機能していないように見えますか?