微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 如何通过SH脚本运行ssh-agent和ssh-add?

我在VPS上连接时手动运行以下两个命令:

eval ssh-agent $SHELL
ssh-add /home/duvdevan/.ssh/id_rsa

我尝试将它们添加到ssh.sh中并使用以下命令在该目录中运行:

./ssh.sh

但没有任何事情发生.

我不是那个精明的人,所以任何帮助都会受到赞赏.

解决方法:

您需要获取脚本,而不是运行:

. ./ssh.sh

否则,eval命令设置的环境变量在当前shell中将不可见,因此无法知道在哪里找到正在运行的ssh代理.

为了给出更多背景知识,以下是它的工作原理:

> ssh-agent命令启动ssh代理,并打印到stdout您需要设置以连接到代理的环境变量.输出格式化为要执行的命令.对于测试,您可以运行此命令并查看其打印内容
> eval命令执行ssh-agent打印的命令.如前所述,这些是设置环境变量的命令.执行这些后,您将在此shell中运行的ssh命令将知道在何处查找代理
>由于先前设置的环境变量,ssh-add命令能够找到代理
>设置这些变量,直到脚本退出.运行./ssh.sh时,变量在该脚本的进程内设置,并在脚本完成后可用
>通过使用.s来获取ssh.sh脚本,里面的命令将在当前shell中执行,因此环境变量仍然设置,因此你的ssh相关命令可以找到代理

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐