我sh在Linux环境中有一个示例脚本,该脚本基本上ssh-agent针对当前shell运行,向其添加密钥并运行两个git命令:
sh
ssh-agent
#!/bin/bash eval "$(ssh-agent -s)" ssh-add /home/duvdevan/.ssh/id_rsa git -C /var/www/duvdevan/ reset --hard origin/master git -C /var/www/duvdevan/ pull origin master
脚本实际上可以正常工作,但是每次运行脚本时,我都会得到一个新进程,因此我认为这可能会成为性能问题,并且最终可能会导致无用的进程。
输出示例:
Agent pid 12109 Identity added: /home/duvdevan/.ssh/custom_rsa (rsa w/o comment)
此外,还有所有这些,是否有可能找到一个现有ssh-agent进程并将我的密钥添加到其中?
到目前为止,答案似乎并未回答原始问题…
这对我有用:
if ps -p $SSH_AGENT_PID > /dev/null then echo "ssh-agent is already running" # Do something knowing the pid exists, i.e. the process with $PID is running else eval `ssh-agent -s` fi