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