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 第一次以后就不需要了