我尝试使用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
我觉得奇怪的是IP 192.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克隆时,密码短语是
[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因此失败了。这是正常的吗?为什么我要输入密码?我怎么能绕过它?
更新
根据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似乎在会话之间不起作用?
答案 0 :(得分:3)
我刚发现我的主机上不需要私钥/公钥对,因为我可以简单地激活mina的forward_agent
选项:
set :forward_agent, true