所以这个标题可能不是很好,但是老实说,我说不出更好的话了。 基本上,为了节省大约5秒钟的时间,我编写了一个简单的脚本,将我的终端实例注册到SSH for Github,如果我关闭终端,则需要输入以下内容:
eval $(ssh-agent -s)
ssh-add ~/.ssh/github
所以我将其放在脚本中,这样我就可以从打开的终端中调用该脚本,当然,该终端在单独的实例中运行且PID并不相同。
这种解释吗?
答案 0 :(得分:1)
ssh-agent -s
输出的命令必须在shell本身中运行,而不是从shell启动的脚本中运行。因此,您有两种选择:
. scriptname
~/bash_aliases
或~/.bash_profile
加载的。例如:gitagent(){
eval $(ssh-agent -s)
ssh-add ~/.ssh/github
}
请注意,许多现代linux发行版都有一个选项(假定它不是默认值),可以在登录时自动运行ssh-agent。检查您的发行版文档。然后,您只需要运行ssh-add
命令即可。
答案 1 :(得分:0)
您可以source
或.
脚本。
cat <<'EOF' >script.sh
#!/bin/bash
eval $(ssh-agent -s)
ssh-add ~/.ssh/github
bla bla
EOF
source script.sh # will run the script.sh as the same pid, ie. source it
. script.sh # is the same
但是我建议只将用户配置添加到~/.ssh/config
:
Host github.com
IdentityFile ~/.ssh/github