我通过 ssh 连接到一个共享主机(WebFaction),然后使用它ssh-agent
来建立到一个 mercurial 存储库(BitBucket)的连接。我这样称呼代理:
eval `ssh-agent`
然后这会喷出代理的 pid 并设置其相关的环境变量。然后我使用 ssh-add 如下添加我的身份(在输入我的密码后):
ssh-add /path/to/a/key
我的 ssh 连接最终超时,我与服务器断开连接。当我重新登录时,我无法再连接到 Hg 服务器,所以我这样做:
ps aux | grep 1234.*ssh-agent`
kill -SIGHUP 43210
然后重复帖子顶部的两个命令(即使用eval
和调用调用代理ssh-add
)。
我确信有一个成熟的习语可以避免这个过程并保持对最初产生的代理的“引用”。我尝试将第一个命令的 I/O 重定向到一个文件(希望在我.bashrc
的 .
我如何避免每次 ssh 进入主机时都必须经历这个过程?
我的 *NIX 技能很弱,因此欢迎对帖子的任何方面提出建设性的批评,而不仅仅是我使用ssh-agent
.