我们有一个构建系统,需要与 Mercurial 建立主动 ssh 连接,为此,它需要ssh-agent
不断加载密钥。
问题是,即使在创建 ssh 代理 eval $(ssh-agent -s)
并设置环境变量之后:
- SSH_AUTH_SOCK
- SSH_AGENT_PID
正在做env | grep SSH
:
SSH_AGENT_PID=7601
SSH_CLIENT=***.***.***.*** 53371 22
SSH_AUTH_SOCK=/tmp/ssh-4gJ9y89gPzbg/agent.7600
SSH_CONNECTION=***.***.***.*** 53371 10.0.67.4 22
当我从 EC2 实例注销后,程序运行并拉取存储库等几个小时后,它会突然出现此错误:
CommandError: (-1, 'remote: ssh_exchange_identification: Connection closed by remote host', 'abort: no suitable response from remote hg!')
然后,当我去检查时,env | grep SSH
唯一设置的是SSH_CONNECTION
和SSH_CLIENT
。
为什么会出现这种情况呢?这些环境变量仅在会话中设置吗?
如果是这样,为什么它只会在长时间注销后才会失败?
我怎样才能使这些环境变量始终存在,这样就不会因为没有设置这两个环境变量而破坏我的程序?
答案1
您的密码超时,但我不知道您的操作系统或设置。