我在连接VPS时手动运行以下两个命令:
eval ssh-agent $SHELL
ssh-add /home/duvdevan/.ssh/id_rsa
我尝试将它们添加到ssh.sh
并使用以下命令在该目录中运行:
./ssh.sh
但没有任何事情发生。
我不是那个bash
- 精明所以任何帮助都会受到赞赏。
答案 0 :(得分:5)
您需要源脚本而不是运行:
. ./ssh.sh
否则,eval
命令设置的环境变量在当前shell中将不可见,因此无法知道在哪里找到正在运行的ssh代理。
为了提供更多背景信息,请参阅以下内容:
ssh-agent
命令启动ssh代理,并打印到stdout您需要设置以连接到代理的环境变量。输出格式化为要执行的命令。对于测试,您只需运行此命令并查看其打印内容eval
命令执行ssh-agent
打印的命令。如前所述,这些是设置环境变量的命令。执行完这些后,您将在此shell中运行的ssh命令将知道在何处找到代理ssh-add
命令能够找到代理,这要归功于之前设置的环境变量./ssh.sh
时,变量将在该脚本的进程内设置,并在脚本完成后更长时间可用ssh.sh
获取.
脚本,内部命令将在当前shell中执行,因此环境变量仍然设置,因此您的ssh相关命令可以找到代理< / LI>