我继承了一个当前已损坏的部署系统,我不知道如何修复它。
基本设置是向 ssh-agent 添加 3 个密钥,并通过 ThoughtWorks 的 Go 部署软件从 Github 中提取一些私有存储库。
我似乎需要运行一个可由多个用户帐户访问的 ssh-agent。
我已经启动了一个 ssh-agent 并向它添加了密钥,然后我能够从命令行克隆私有存储库而没有问题,但是当主应用程序(使用相同的用户帐户)尝试克隆它时失败了权限被拒绝错误。
我的猜测是,由于某种原因,应用程序无法访问持有密钥的 ssh-agent。
以下是我的说明:
- 导出 SSH_AUTH_SOCK=/var/go/ssh-agent.sock
- ssh-add ~/.ssh/go_deploy_id_rsa
- ssh-add ~/.ssh/go_id_rsa
- ssh-add ~/.ssh/deploy_id_rsa
当我设置 SSH_AUTH_SOCK 环境变量时,它似乎会杀死任何正在/正在运行的 ssh-agent,当我发出 ssh-add 命令时,我得到了经典:
“无法打开与您的身份验证代理的连接。”
所以基本上我如何启动 ssh-agent 并让它使用我之前定义的 SSH_AUTH_SOCK 并保持运行,以便 Go 应用程序在与 Github 通信时使用它?
这个用途可以工作,所以我知道该设置在技术上是有效的。
已解决:原来我使用的 ssh-agent 套接字已经过时了。删除套接字并重新创建它允许添加密钥并再次进行通信。