我创建了文件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文件运行命令时,它工作正常)
答案 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环境变量。因此,从脚本运行所有命令或从命令提示符运行所有命令。