1203.1395天:SSH证书登录
2022-12-02 本文已影响0人
我的职业生涯
#每日三件事,第1395天#
SSH全程secure shell,是通过加密连接服务器的一种方式。
等保三级的身份鉴别中有一条要求:当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听。
也就是说,要远程管理设备时,应当采用加密的方式对通信网络上的数据加密传输。SSH就可以实现这一要求。
下面以CentOS 7为例来说明SSH的使用。
一. 直接使用SSH
1.1 通过口令登录服务器
CentOS7 安装好以后,sshd默认是启动的。可以通过命令来查看:
[root@centos7 ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since 五 2022-12-02 16:13:02 CST; 1h 6min ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 8920 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
Main PID: 8767 (sshd)
Tasks: 1
CGroup: /system.slice/sshd.service
└─8767 /usr/sbin/sshd -D
只要看到active(running),就说明sshd服务是正常运行的。
在客户端直接使用命令就可以登录服务器了:
ssh test@192.168.0.10
为了安全起见,在服务器上禁止root用户登录:
vim /etc/ssh/sshd_config
PermitRootLogin no
这种方式是常见的,只要账户的口令正确,就可以登录服务器。
1.2 通过证书登录服务器
首先生成证书,包括公钥证书和私钥证书:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/liyz/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 111222(口令不可见)
Enter same passphrase again: 111222(口令不可见)
Your identification has been saved in /Users/liyz/.ssh/id_rsa1
Your public key has been saved in /Users/liyz/.ssh/id_rsa1.pub
The key fingerprint is:
SHA256:YiZvjxUCjKVbg6glfjm3ZL3z1ILY26I1WUutbdrYkB4 liyz@192.168.0.101
The key's randomart image is:
+---[RSA 3072]----+
| . |
| . * |
|o = = |
|oo o.o. . |
|...+.+=.So . |
| . ==+o*.* |
| ooO.E + |
| ..=O X |
| .o.o* o |
+----[SHA256]-----+
在/Users/liyz/.ssh目录中会产生两个文件,一个是id_rsa,这个是私钥证书,需要保存在客户机中;另一个是id_rsa.pub,这个是公钥证书,需要上传到服务器中。
1.2.1 服务器配置修改
修改服务器sshd_config文件:
-
禁止通过密码登录,只允许证书登录;
-
修改公钥证书文件;
vim /etc/ssh/sshd_config
PasswordAuthentication no //原来是yes
AuthorizedKeysFile /root/.ssh/id_rsa.pub //原来是.ssh/authorized_keys
- 重启sshd服务;
systemctl restart ssd
1.2.2 客户端登录
检查客户端应该有私钥证书:.ssh/id_rsa
使用命令ssh命令登录服务器:
# ssh root@192.168.0.10
The authenticity of host '192.168.0.10 (192.168.0.10)' can't be established.
ED25519 key fingerprint is SHA256:k/5TJYuu4PNlrljOW/asglLyr8jV9zHSwvBdfHoV3EQ.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.0.10' (ED25519) to the list of known hosts.
Enter passphrase for key '/Users/liyz/.ssh/id_rsa':
Last login: Fri Dec 2 17:38:25 2022 from 192.168.0.101
[root@centos7 ~]#
特别注意:
-
一定要牢牢的记住产生证书密钥是输入的密码;
-
一定要牢牢的保存好自己的私钥证书文件,可以把权限修改为600。
-
如果有多个客户端登录服务器的话,只要把其他客户端的公钥证书文件添加到id_rsa.pub文件的后面就可以了。
这种通过证书登录服务器的方式,算不算双因子鉴别呢?