jx1*_*345 103 shell ssh ssh-agent eval
为了运行,ssh-agent我必须使用:
eval $(ssh-agent)
Run Code Online (Sandbox Code Playgroud)
为什么需要eval输出ssh-agent? 为什么我不能运行它?
Sha*_*dur 123
ssh-agent 输出您需要连接到它的环境变量:
shadur@proteus:~$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-492P67qzMeGA/agent.7948; export SSH_AUTH_SOCK;
SSH_AGENT_PID=7949; export SSH_AGENT_PID;
echo Agent pid 7949;
shadur@proteus:~$
Run Code Online (Sandbox Code Playgroud)
通过调用eval您立即将这些变量加载到您的环境中。
至于为什么不能自己ssh-agent做到这一点......请注意选择这个词。不是“不会”,“不能”。在 Unix 中,进程只能修改自己的环境变量,并将它们传递给子进程。它不能修改其父进程的环境,因为系统不允许。这是非常基本的安全设计。
你可以避开eval使用ssh-agent utility这里utility是你的登录shell,你的窗口管理器或任何其他的事情需要有设置SSH环境变量。手册中也提到了这一点。
| 归档时间: |
|
| 查看次数: |
33396 次 |
| 最近记录: |