ssh 基于key 远程访问

单向的基于key 验证

步骤两步

1、生成公钥私钥对,

[root@entos7 /]# ssh-keygen

直接按照默认enter 下午

2、把公钥拷贝给目标主机

[root@entos7 ~]# ssh-copy-id -i .ssh/id_rsa.pub 10.0.0.151   #10.0.0.151 是目标主机,这一步需要输入目标主机的密码

所以可以用非交互式的 sshpass 命令

需要安装包  yum -y install sshpass 

[root@entos7 ~]# sshpass -p 123456 ssh-copy-id -o StrictHostKeyChecking=no  root@10.0.0.151  #123456 是10.0.0.151root 用户的密码,这条命令可以不用在手工输入密码

3、测试

[root@entos7 ~]# ssh 10.0.0.151 hostname -I
10.0.0.151

 

 

多台机器互相基于key 验证,且免密

1、准备三台机器 IP 10.0.0.150 151 152  对应的主机名 node01 node02 node03

2、三台主机都修改配置文件 /etc/hosts 增加以下内容

10.0.0.150 node01
10.0.0.151 node02
10.0.0.152 node03

3、生成密钥对 三台机器上都执行

[root@entos7 /]# ssh-keygen  也可以 ssh-keygen -t rsa   

这时会发行 root 下多了一个 .ssh 文件夹,且里面有两个文件

[root@node01 ~]# ll .ssh/
total 8
-rw------- 1 root root 1675 Mar 8 22:00 id_rsa   #这是私钥
-rw-r--r-- 1 root root 393 Mar 8 22:00 id_rsa.pub #这是公钥

3、在三台机器上执行 以下命令

[root@entos7 ~]# ssh-copy-id node01

会发现node01 机器的 .ssh 文件夹下多了一个文件 authorized_keys  这个你会发现,他的内容和是三台机器的公钥内容是一样的

3、将authorized_keys拷贝到 node2  node 3 去

[root@node01 ~]# cd /root/.ssh/
[root@node01 .ssh]# scp authorized_keys node02:/root/.ssh/    #将

[root@node01 .ssh]# scp authorized_keys node03:/root/.ssh/ 

测试:

[root@node03 .ssh]# ssh node01
Last login: Tue Mar 8 22:16:01 2022 from node03
[root@node01 ~]# ssh node02
Last login: Tue Mar 8 22:14:08 2022 from node01
[root@node02 ~]#

注意,第一次ssh 的时候,还是会让你输入yes  第一次以后就不需要了

posted @ 2022-03-08 16:29  是阿帅不是阿衰  阅读(164)  评论(0编辑  收藏  举报