ruby-on-rails - 在heroku上运行时的ssh-agent问题

标签 ruby-on-rails git docker heroku ssh

我有一个使用 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_SOCKSSH_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/

相关文章:

docker - Vagrant 配置程序上的 docker 守护进程版本是什么?

Docker-compose 卷不保存 Keycloak 的容器状态

ruby-on-rails - Ruby On Rails - 无法通过报复在 has_many 中执行 where 语句

Docker 守护进程 "unknown: Authentication is required"消息

ruby-on-rails - Rails 5,Rspec : Environment data not found in the schema

git - 将文件恢复到以前的版本后,git diff 显示没有差异?

git - 如何使用 git/AWS CLI 管理 AWS Lambda 代码?

java - org.jvnet.jaxb2.maven2 :maven-jaxb2-plugin : same file , 倍数结果

jquery - 单击 form_for 中的 HTML 按钮时防止自动刷新

ruby-on-rails - Rails 3.1中已经去掉了 "def validate"吗?