我有一个使用 docker 的 Rails 应用程序,它对另一个应用程序进行一些自动更改,然后 git 将更改推送到 GitHub。我花了一些时间才能将我的 ssh key 放到 docker 容器上,在一种相同的庄园中(对它完全不满意,但在我解决这个问题后会改变它)。我现在的问题是,在 Dockerfile 中运行 git 克隆时,一切都很好,但是从我的 rails 代码中,它说我没有访问权限,所以在代码中我去重新 ssh-add key .然而它接着说Could not open a connection to your authentication agent.
,然后我尝试重新初始化 ssh-agent ( echo $(ssh-agent -s)
),这似乎成功了,但在 ssh-add 上仍然失败。
如果我通过 SSH 登录并尝试这些步骤,它工作正常,但如果我在控制台中运行并运行运行这些控制台调用的函数,它会因同样的问题而失败。然后似乎没有设置设置环境变量的 ssh-agent 调用。我有一种感觉,heroku 容器不允许更改 env 变量,除非它通过它们的 heroku config:set
,但这是不可能的,因为每个进程都有不同的 SSH_AUTH_SOCK
和 SSH_AGENT_PID
.任何关于如何处理这个问题的建议都会有很大的帮助。
最佳答案
当您没有运行事件的 SSH 代理时,通常会发生此错误。Could not open a connection to your authentication agent.
这在基于 Debian 的系统中很常见,而大多数 Ubuntu 始终运行一个。
要解决此问题,您只需要启动一个新代理即可。eval $(ssh-agent)
这应该在 ssh-add
之前运行。 .
关于ruby-on-rails - 在heroku上运行时的ssh-agent问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53991938/