我正在遵循 this link 在 digital ocean 上部署 Rails 应用程序.当我遵循确切的步骤时,它工作得很好。但后来我意识到 github 存储库是公开的。我应该把它作为私有(private)的。我创建了一个私有(private)存储库并在我的本地更改了远程源。我将 ssh key 放在新的私有(private)存储库中。删除了服务器中的旧应用程序文件夹。然后尝试从远程存储库克隆,但它要求输入密码。 (它应该使用 ssh key ??)。
我还更改了 deploy.rb 和 nginx.conf 以反射(reflect)远程存储库的更改,然后给出了这个命令,cap production deploy:initial
,但由于 git 中的身份验证失败,它失败了。
为什么会失败?为什么 ssh key 不生效?
最佳答案
也许是因为您没有为 digital ocean 启用 ssh 转发?要验证,首先编辑$HOME/.ssh/config
在本地电脑上:
host *
ForwardAgent yes
现在尝试运行
cap production deploy:initial
.如果它现在无需密码也可以工作,那么您应该更改 host *
实际匹配您的 ssh 主机的主机名,所以 ForwardAgent
只为 digital ocean 设置:host digitalocean.com
ForwardAgent yes
对于您的用例:
ForwardAgent
使服务器能够使用您的本地 ssh key ,因此您的部署用户具有与本地用户相同的“ssh 权限”。
关于ruby-on-rails - 更改 git 的 Remote 在 digital ocean 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33713210/