Mina 部署:我已经设置了 SSH,但无法连接到 git@github.com

Mina deploy: I have set up SSH, but can't connect to git@github.com

我尝试使用 mina 部署私有存储库。

我在我的服务器上生成了一个 public 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  

我觉得奇怪的是 IP 192.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 克隆时密码短语被获取:

[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 在会话之间似乎不起作用?

我刚刚发现我的托管商不需要 private/public 密钥对,因为我可以简单地激活 mina 的 forward_agent 选项:

set :forward_agent, true