gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:48:44 26 4
gpt4 key购买 nike

我有以下两个命令,当我连接到我的 VPS 时手动运行它们:

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

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

./ssh.sh

但什么也没发生。

我不是那种bash-savvy 所以任何帮助都将不胜感激。

最佳答案

无需运行,您需要获取脚本:

. ./ssh.sh

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

为了提供更多背景知识,这是它的工作原理:

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

关于linux - 如何通过 SH 脚本运行 ssh-agent 和 ssh-add?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37209657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com