我创建了文件ssh-start.sh,其中包含:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
我正在运行它并输出:
Agent pid 1234
Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)
Run Code Online (Sandbox Code Playgroud)
但是当我跑
ssh-add -l
Run Code Online (Sandbox Code Playgroud)
我越来越:
Could not open a connection to your authentication agent.
Run Code Online (Sandbox Code Playgroud)
我做错了什么以及如何解决这个问题?
(当我直接在终端中从ssh-start.sh文件运行命令时,它工作正常)
ssh命令需要知道如何与ssh-agent对话,他们从SSH_AUTH_SOCK环境变量中知道
[gc @ slave4~] $ ssh-agent -s
SSH_AUTH_SOCK =/tmp/ssh-ln4RuPajkE2A/agent.11091; export SSH_AUTH_SOCK;
SSH_AGENT_PID = 11092; export SSH_AGENT_PID;
echo Agent pid 11092;
如果ssh-add -l在脚本之后运行它,ssh和ssh-add都不会看到设置了SSH_AUTH_SOCK环境变量.因此,从脚本运行所有命令或从命令提示符运行所有命令.