ruby-on-rails - 更改 git 的 Remote 在 digital ocean 上不起作用

标签 ruby-on-rails git nginx ssh digital-ocean

我正在遵循 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/

相关文章:

nginx - 一个服务器 block 中有多个 HTTP_X_ACCEL_MAPPING

javascript - 将 Rails JSON 与 JQuery 一起使用的简单示例?

ruby-on-rails - `rails server` 使用Puma,域名指向127.0.0.1

git - git不区分大小写吗?

java - 在项目之间自动传输 IntelliJ 设置 - 是如何完成的?

docker - nginx负载均衡器-Docker撰写

ruby-on-rails - Angular ng-show 大于未评估

ruby-on-rails - 中间人 - 子目录和子目录的事件类

c# - Lost references in Visual Studio 2017 解决方案

nginx - 如何为端到端 tls 连接启用 nginx 入口