ssh-add 配合 ssh-agent 免密登陆多台机器。

ssh-add

@(ssh)

ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。

-D:删除ssh-agent中的所有密钥. 
-d:从ssh-agent中的删除密钥 
-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。 
-s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。 
-L:显示ssh-agent中的公钥 
-l:显示ssh-agent中的密钥 
-t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥 -X:对ssh-agent进行解锁 
-x:对ssh-agent进行加锁

1、把专有密钥添加到 ssh-agent 中

ssh-add ~./ssh/id_dsa

2、从 ssh-agent 中删除密钥

ssh-add -d ./ssh/id_xxx.pub

3、查看 ssh-agent 中的密钥

ssh-add -l

ssh-agent

用于管理 ssh private keys,目的是对解密的私钥进行高速缓存。
ssh-add 提示并将用户使用的私钥添加到 ssh-agent 维护列表中,此后当公钥连接到远程 SSH 或 SCP 主机时,不再提示信息。

启动 ssh-agent
# ssh-agent

示例

三台服务器 centos7,centos72,centos73
ip 192.168.32.161、32.163、32.164

# ssh-keygen
centos7 生成密钥,一路回车,复制公钥到 centos72、centos73 的 .ssh/authorized_keys.
修改 authorized_keys 权限为 600
[root@centos7 .ssh]# ssh-agent 
SSH_AUTH_SOCK=/tmp/ssh-WQpbjjWuLKye/agent.2495; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2496; export SSH_AGENT_PID;
echo Agent pid 2496;

[root@centos7 .ssh]# ssh-add
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

[root@centos7 .ssh]# ssh -A x163
Last login: Fri Aug 11 02:37:26 2017 from x1
[root@centos72 ~]#


[root@centos72 ~]# ssh -A 192.168.32.164
Last login: Fri Aug 11 02:36:41 2017 from 192.168.32.160
[root@centos73 ~]# 
  • 注意 ssh 到第一台server的时候,使用 -A 选项
  • ssh -A 开启认证代理连接转发功能
  • 之后登陆其他 server 的时候,只支持 ip 地址访问,除非在 server 的 /etc/hosts 里面添加配置文件.
  • 有没有 -A 选项均可登陆。

你可能感兴趣的:(Linux基础)