Ssh-agent

来自linux中国网wiki
Evan讨论 | 贡献2021年7月16日 (五) 14:10的版本
跳到导航 跳到搜索

Usage

先将ssh-agent运行起来:

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-GiORRAqMXEFt/agent.28161; export SSH_AUTH_SOCK;
SSH_AGENT_PID=28162; export SSH_AGENT_PID;
echo Agent pid 28162;

输出结果中明确说明了导出了几个环境变量,同时也可以知道ssh-agent使用Unix Domain套接字的方式监听在本机上以及其pid为28162。到时候可以直接使用kill 28162杀掉这个进程,更直接的方式是使用ssh-agent -k,它会根据当前的环境变量SSH_AGENT_PID来杀进程。

输出结果中明确说明了导出了几个环境变量,同时也可以知道ssh-agent使用Unix Domain套接字的方式监听在本机上以及其pid为28162。到时候可以直接使用kill 28162杀掉这个进程,更直接的方式是使用ssh-agent -k,它会根据当前的环境变量SSH_AGENT_PID来杀进程。


# 先杀掉刚才的ssh-agent
$ kill 28162

$ eval `ssh-agent`
Agent pid 28173

ssh客户端上运行ssh-agent后,就可以使用ssh-add命令向ssh-agent添加私钥(如果私钥使用了passhprase密码,则要求输入一次密码)。
ssh客户端上运行ssh-agent后,就可以使用ssh-add命令向ssh-agent添加私钥(如果私钥使用了passhprase密码,则要求输入一次密码)。

$ ssh-add #现在这个命令就会添加所有的pri key了
$ ssh-add ~/.ssh/id_rsa_1
$ ssh-add ~/.ssh/id_rsa_2

默认会添加~/.ssh/下的所有私钥类文件(~/.ssh/id_rsa, .ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519, ~/.ssh/identity),也可以指定要添加的文件。正如上面给出的示例。

ssh-add命令是查找当前环境变量SSH_AUTH_SOCK的值并发送添加请求给对应套接字的,所以这个套接字环境变量非常重要。

之后再使用公钥认证就可以直接连接到目标主机:

查看已添加的prikey
ssh-add -L

see also

ssh转发代理:ssh-agent用法详解