CentOs7.3 SSH密钥对配置
一般情况下不能轻易使用root用户,
所以我们来学习两个普通用户之间的ssh密钥配置,
配置成功后客户机使用的用户可以免密码登陆服务器。
密钥对验证:客户机生成密钥对上传到服务器,用于登录服务器
我用两个centos7.3系统给大家演示配置过程:
这是服务器的配置
IP地址为192.168.1.1
[root@b ~]# systemctl stop firewalld
[root@b ~]# setenforce 0
[root@b ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@b ~]# systemctl restart network
[root@b ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::aa1a:9947:c0ab:3862 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:73:39:28 txqueuelen 1000 (Ethernet)
RX packets 3 bytes 276 (276.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 34 bytes 4372 (4.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
这是客户端的配置
IP地址为192.168.1.2
[root@c ~]# systemctl stop firewalld
[root@c ~]# setenforce 0
[root@c ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
^[[B[root@c ~]# systemctl restart network
[root@c ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::ba00:b27e:5e81:9ec1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:3d:4e:2e txqueuelen 1000 (Ethernet)
RX packets 3 bytes 180 (180.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 36 bytes 4733 (4.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
服务端创建普通用户abc
[root@b ~]# useradd abc
[root@b ~]# passwd abc
更改用户 abc 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
客户端是创建用户user
[root@c ~]# passwd user
更改用户 user 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
在客户端登陆服务器是我们能看到是需要密码的
[root@c ~]# ssh abc@192.168.1.1
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ECDSA key fingerprint is c6:8b:1c:96:ad:b3:5c:03:19:ad:a2:f5:f9:3f:25:e2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.1' (ECDSA) to the list of known hosts.
abc@192.168.1.1's password:
[abc@b ~]$
输入exit退出
[abc@b ~]$ exit
登出
Connection to 192.168.1.1 closed.
[root@c ~]#
在客户端user用户下
输入 ssh-keygen -t ecdsa 生成密钥
[root@c ~]# su user
[user@c root]$ ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_ecdsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_ecdsa.
Your public key has been saved in /home/user/.ssh/id_ecdsa.pub.
The key fingerprint is:
f2:c4:36:4b:c6:63:00:46:42:33:fb:fb:68:bd:8e:d8 user@c
The key's randomart image is:
+--[ECDSA 256]---+
| .=.+ |
| * . |
| . . |
| . + |
| . . S |
| . O + |
| .. o |
| o.+. |
| ..E.+. |
+-----------------+
密钥在当前用户user下的 .ssh 目录下
id_ecdsa是私钥
id_ecdsa.pub是公钥
[user@c root]$ ls /home/user/.ssh/
id_ecdsa id_ecdsa.pub
[user@c root]$
把公钥文件上传到服务器
scp /home/用户/.ssh/id_ecdsa.pub root@服务器IP:/目录
我给它传到/tmp下
#这里要输入一次服务器的root密码
[user@c root]$ scp /home/user/.ssh/id_ecdsa.pub root@192.168.1.1:/tmp
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ECDSA key fingerprint is c6:8b:1c:96:ad:b3:5c:03:19:ad:a2:f5:f9:3f:25:e2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.1' (ECDSA) to the list of known hosts.
root@192.168.1.1's password:
id_ecdsa.pub 100% 168 0.2KB/s 00:00
[user@c root]$
在服务端把密钥文件id_ecdsa.pub拿出来
交给/home/abc/.ssh/authorized_keys
[root@b ~]# mkdir /home/abc/.ssh
[root@b ~]# cat /tmp/id_ecdsa.pub >> /home/abc/.ssh/authorized_keys
在客户端进行成功验证
[user@c root]$ ssh abc@192.168.1.1
Last login: Sat Nov 16 21:20:44 2019
[abc@b ~]$
只有客户端的user用户才能使用服务端的abc用户身份登陆服务端
我们来尝试一下其他普通用户使用服务端abc用户身份登陆服务器
在客户端创建普通用户aaa
[root@c ~]# useradd aaa
[root@c ~]# passwd aaa
更改用户 aaa 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@c ~]#
其他用户不能免密登陆服务器的abc身份验证成功
[root@c ~]# ssh abc@192.168.1.1
abc@192.168.1.1's password:
Permission denied, please try again.
abc@192.168.1.1's password:
Permission denied, please try again.
abc@192.168.1.1's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[root@c ~]#
我是小白
有什么不足的尽管评论哈哈哈!!!