Linux之ssh-agent命令

870 阅读2分钟

ssh密钥管理器,ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。

其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。

我们认为你正在用ssh key做权限认证。为了避免你在启动ssh agent时重复输入密码,你可以输下面两个命令 ssh-agent bash:启动ssh agent,并把bash挂到上面 ssh-add .ssh/id_rsa:添加私钥并由ssh agent保管,这样下次就不需要再输入密码了

命令语法

ssh-agent [-c | -s] [-d] [-a bind_address] [-t life] [command [arg ...]]
ssh-agent [-c | -s] -k

命令选项

  • -a bind_address:bind the agent to the UNIX-domain socket bind_address.
  • -c:生成C-shell风格的命令输出。
  • -d:调试模式。
  • -k:把ssh-agent进程杀掉。
  • -s:生成Bourne shell 风格的命令输出。
  • -t life:设置默认值添加到代理人的身份最大寿命。

运行ssh-agent

> ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-lWA15nOUhcYG/agent.26310; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26315; export SSH_AGENT_PID;
echo Agent pid 26315;

运行ssh-agent,它会打印出来它使用的环境和变量。

使用-d参数,运行调试模式

> ssh-agent -d

使用-k参数杀掉ssh-agent进程

> ssh-agent -k

ssh-agent的使用场景

使用不同的密钥连接到不同的主机时,需要手动指定对应的密钥。ssh-agent 可以帮助我们选择对应的密钥进行认证,不用手动指定密钥即可进行连接。

当私钥设置了密码,我们又需要频繁的使用私钥进行认证时,ssh-agent 可以帮助我们免去重复的输入密码的操作。

原文链接:rumenz.com/rumenbiji/l… 微信公众号:入门小站