3

我尝试使用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'ing 时已经这样做了。而我服务器的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': 

我猜Mina因此而失败了。这是正常的吗?为什么我必须输入密码?我该如何规避它?

更新

根据第 3 步:将您的密钥添加到 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 在会话之间似乎不起作用?

4

1 回答 1

4

我刚刚发现我的主机上不需要私钥/公钥对,因为我可以简单地激活forward_agentmina 的选项:

set :forward_agent, true
于 2015-03-16T12:46:08.137 回答