我已经使用 homebrew 在 OS X 上安装了最新版本的 OpenSSH。按照公式,我已编辑org.openbsd.ssh-agent.plist
文件以指向/usr/local/bin/ssh-agent
,并且还将以下内容添加到我的.zshrc
:
eval $(ssh-agent)
function cleanup {
echo "Killing SSH-Agent"
kill -9 $SSH_AGENT_PID
}
trap cleanup EXIT
这意味着,如果我有n终端标签打开,我有n正在运行的ssh-agent
进程。这有必要吗?我肯定只需要在任何时候运行一个 ssh-agent 实例?
答案1
原始说明说将这些行放入你的.bash_profile
。这意味着它们只执行登录shell。普通终端内的 shell 通常不是登录壳,因此ssh-agnet仅启动一次。
zsh 对应的 rc 文件是~/.zprofile
。因此,请将这些行放入~/.zshrc
--- 而不是 中~/.zprofile
。瞧瞧。
如果你想了解更多关于登录,交互的等 shell,查看 shell 的手册页,阅读UnixSE 上的这个答案或者我对另一个问题的回答。