在实际生产和测试环境中,经常会使用ssh-key密钥认证实行免密登录远程主机。例如,常见的内网主机之间复制文件、分发数据都会使用到免密登录。
1.1 环境配置
本次实践操作使用如下两台服务器。
服务器A 192.168.184.70(分发服务器) 主机名 :server
服务器B 192.168.184.71 (目标节点服务器),主机名:node1
1.分发服务器配置分发用户
在分发服务器上新增专门用于分发数据的用户,操作如下
[root@server ~]# useradd fenfa
[root@server ~]# passwd fenfa
[root@server ~]# tail -1 /etc/passwd
fenfa:x:1000:1000::/home/fenfa:/bin/bash
2.目标节点服务器配置分发用户
目标节点服务器也需要配置相同的用户
[root@node1 ~]# useradd fenfa
[root@node1 ~]# passwd fenfa
[root@node1 ~]# tail -1 /etc/passwd
fenfa:x:1000:1000::/home/fenfa:/bin/bash
1.2 生成密钥对
在分发服务器上切换到刚刚创建的分发用户下,然后通过命令来生成密钥对,操作如下
[root@server ~]# su - fenfa
[fenfa@server ~]$ whoami
fenfa
[fenfa@server ~]$ ssh-keygen
[fenfa@server ~]$ cd /home/fenfa/.ssh/
[fenfa@server .ssh]$ ll
总用量 8
-rw-------. 1 fenfa fenfa 1679 1月 19 20:07 id_rsa
-rw-r--r--. 1 fenfa fenfa 394 1月 19 20:07 id_rsa.pub
从命令结果可以看出,密钥对已经生成
1.3 分发密钥
密钥对生成后,就需要将公钥分发复制到目标节点服务器上,分发的命令格式如下
ssh-copy-id -i 密钥名称 用户@远端主机IP地址
#用于SSH默认端口(没有更改SSH服务默认22端口的情况下使用)
ssh-copy-id -i 密钥名称 -p port 用户@远端主机IP地址
#用于SSH默认端口(更改了服务默认22端口的情况下使用)
分发操作命令如下
[fenfa@server .ssh]$ ssh-copy-id -i ./id_rsa.pub fenfa@192.168.184.71
在目标节点服务器查看是否分发完成,操作如下
[root@node1 ~]# su - fenfa
[fenfa@node1 ~]$ cd /home/fenfa
[fenfa@node1 ~]$ cd .ssh/
[fenfa@node1 .ssh]$ ll
从结果可以看出,已经分发完成,并且已经完成更改文件名
1.4 测试免密分发数
完成上述步骤后表示已经完成免密登录配置。接下来,我们将进行测试,测试是否能实现免密分发数据
[fenfa@server ~]$ touch aa bb
[fenfa@server ~]$ ll
[fenfa@server ~]$ scp -r -P22 ./aa bb fenfa@192.168.184.71:~
[fenfa@node1 ~]$ pwd
/home/fenfa
[fenfa@node1 ~]$ ll
从命令结果可以看出,数据分发成功,表面之前的所有配置都是正确的。
注意:如果想要退出ssh远程连接 输入命令exit即可
参考:《Linux运维系统指南从入门要企业实战》