我在VPS上连接时手动运行以下两个命令:
eval ssh-agent $SHELL
ssh-add /home/duvdevan/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
我尝试将它们添加到a ssh.sh并使用以下命令在该目录中运行:
./ssh.sh
Run Code Online (Sandbox Code Playgroud)
但没有任何事情发生.
我不是那么bash- 所以任何帮助都是值得赞赏的.
而不是运行的,你需要源脚本:
. ./ssh.sh
Run Code Online (Sandbox Code Playgroud)
否则,该eval命令设置的环境变量在当前shell中将不可见,因此无法知道在哪里找到正在运行的ssh代理.
为了给出更多背景知识,以下是它的工作原理:
ssh-agent命令启动一个ssh代理程序,并打印到stdout您需要设置以连接到代理程序的环境变量.输出格式化为要执行的命令.对于测试,您可以运行此命令并查看其打印内容eval命令执行打印的命令ssh-agent.如前所述,这些是设置环境变量的命令.执行这些后,您将在此shell中运行的ssh命令将知道在何处查找代理ssh-add由于先前设置的环境变量,该命令能够找到代理./ssh.sh,变量在该脚本的进程内设置,并在脚本完成后可用ssh.sh使用脚本获取脚本.,里面的命令将在当前shell中执行,因此环境变量仍然设置,因此你的ssh相关命令可以找到代理| 归档时间: |
|
| 查看次数: |
1197 次 |
| 最近记录: |