我尝试使用capistrano在slicehost中部署应用程序。我可以使用相同的凭据通过SSH登录,但是当我尝试部署它时,我收到以下错误:
我做错了什么?是什么我应该添加到我的deploy.rb文件,以使其与slicehost一起使用?
答案 0 :(得分:1)
Slicehost是否有权从您的git服务器克隆存储库?如果您的git服务器需要ssh身份验证,则必须在主机上生成ssh密钥,并将主机的公钥放在git服务器上。
如果不是这样,那么它似乎与在主机上运行git有关。但是“(Net :: SSH :: Disconnect:由远程主机关闭的连接)”闻起来像是一个身份验证问题。
答案 1 :(得分:1)
我有同样的问题。
railsu@li:~/.ssh$ ls
authorized_keys
我已经在railsu和git中创建了.ssh文件。但是这里也存在这个问题。
所以我认为这个错误不是身份验证问题。
答案 2 :(得分:0)
您可以在Clinton建议的服务器上生成密钥,或者您可以启用SSH代理转发。
这意味着您不必在服务器上生成新的SSH密钥。您使用已部署的计算机上已有的密钥,并且密钥转发,以便在服务器上使用以连接到您的git服务器。
您可以将ssh_options[:forward_agent] = true
添加到您的capistrano配方中,或者像这样添加一个主机配置到您的~/.ssh/config
:
Host <name>
HostName <ip or host>
User <username>
IdentityFile ~/.ssh/<filename>
ForwardAgent yes
我更喜欢后者。
上有一个非常完整的SSH代理转发指南