扩展:ssh代理

ssh-agent简介

SSH代理程序,可用来管理私钥

作用:
1、使用不同的密钥连接到不同的主机时,无需手动指定对应的密钥。
2、当私钥设置了密码,免去输入密码的操作。

启动ssh-agent

有两种启动方式

$ ssh-agent $SHELL
$ eval `ssh-agent`

使用pstree命令查看当前sshd进程树如下

第一种方式启动,会在当前shell中启动一个子shell运行ssh-agent

第二种方式启动,会直接启动一个ssh-agent进程,退出当前shell并不能关闭ssh-agent进程,需要手动使用ssh-agent -k关闭。


使用ssh-agent

1、添加私钥到ssh代理中

$ ssh-add  ~/.ssh/id_rsa_tz

2、当私钥设置密码后,使用ssh-agent代理无需输入密码

#生成密钥对,并指定私钥密码
$ ssh-keygen -f ~/.ssh/id_rsa_tz -P '123456'

#将公钥发给远程主机
$ ssh-copy-id -i ~/.ssh/id_rsa_tz.pub root@10.154.0.112

#启动ssh-agent
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa_tz #加入有密码的私钥,会提示输入私钥的密码
$ ssh 10.154.0.112 #无需输入私钥密码即可登录

3、查看代理已添加的私钥

$ ssh-add -l
2048 SHA256:ofP2aOxTudpTSklkUB73yQdWU8JpraFmbA0gzY7VMiU /root/.ssh/id_rsa_tz (RSA)
2048 SHA256:GHNvSRewH5wTR4ohCj0uEX+ENlJz6bAHkhpZAKTR0og /root/.ssh/id_rsa (RSA)

4、查看私钥对应的公钥内容

$ ssh-add -L
#公钥太长,省略了中间部分内容
ssh-rsa AAAAB3NzaLvo/VlHLs4OaH...LEA1euopv00AxjM9JhN5XwNyb /root/.ssh/id_rsa_tz
ssh-rsa AAAAB3NzaC1yc1euopv00A...opv00AEAAjpykZjgKkTam5R9z /root/.ssh/id_rsa

5、移除添加的私钥

$ ssh-add -d /root/.ssh/id_rsa_tz

#移除全部添加的私钥
$ ssh-add -D

6、为ssh代理设置密码并锁定

$ ssh-add -x #输入设置的密码,并锁定ssh代理,锁定期间无法使用ssh代理
$ ssh-add -X #解锁

学习来自:朱老师博客

posted @ 2021-04-26 15:16  努力吧阿团  阅读(237)  评论(0)    收藏  举报