在bash脚本中运行ssh-agent

时间:2014-07-26 14:25:56

标签: bash ssh

我创建了文件ssh-start.sh,其中包含:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

我正在运行它并输出:

Agent pid 1234
Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)

但是当我跑步时

ssh-add -l

我得到了:

Could not open a connection to your authentication agent.

我做错了什么以及如何解决这个问题?

(当我直接在终端中从ssh-start.sh文件运行命令时,它工作正常)

1 个答案:

答案 0 :(得分:5)

ssh 命令需要知道如何与 ssh-agent 交谈,他们知道来自SSH_AUTH_SOCK环境变量

[gc @ slave4~] $ ssh-agent -s
SSH_AUTH_SOCK = / TMP / SSH-ln4RuPajkE2A / agent.11091;导出SSH_AUTH_SOCK;
SSH_AGENT_PID = 11092;导出SSH_AGENT_PID;
echo agent pid 11092;

如果在脚本之后运行它ssh-add -l,则ssh和ssh-add都不会看到设置了SSH_AUTH_SOCK环境变量。因此,从脚本运行所有命令或从命令提示符运行所有命令。

相关问题