Centos7ssh使用证书登录加固

对于没有固定IP,防火墙不好配置时,使用密码又容易给hacker暴力破解。
针对这种情况,可以取消密码登录,进而使用证书认证来登录。加强了远程登录的安全性

环境

1
2
3
[root@aliyunrg .ssh]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core)
[root@aliyunrg .ssh]#

1、生成密钥:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ssh-keygen -t rsa
[root@aliyunrg ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:onJuSYVI4CKNLgFphRWorCCglpoDnQJsuyj3NdF0VIE root@aliyunrg
The key's randomart image is:
+---[RSA 2048]----+
|+o=+. ..oo. |
|*O. . E |
|&++o . o . |
|@*+ . o . |
|X+. ...S |
|O.. ..o. |
|.o.ooo . |
| ++ |
| .. |
+----[SHA256]-----+
[root@aliyunrg ~]#

2、在CRT生成公秘钥

1-2.png

3、直接下一步

1-3.png

4、使用默认的RSA算法就行了

1-4.png

5、证书的密码

1-5.png

6、使用2048即可,当然 设置512到16384长度内的是允许的

1-6.png

7、生成中……

1-7.png

8、openssh服务器 我们就选择中间的选项

1-8.png

9、不启动全局使用

1-9.png

10、将这个文件的内容复制到服务器上的/root/.ssh 下的 authorized_keys
authorized_keys 如果不存在就自己生成一个 注意权限是600

1-10.png

二 修改ssh配置

vi /etc/ssh/sshd_config

去掉这个两个的注释 启动证书认证

1
2
RSAAuthentication yes
PubkeyAuthentication yes

这个字段设置为no,禁用密码登录

1
2
3
PasswordAuthentication yes
修改成
PasswordAuthentication no

:wq 保存退出文件

重启SSH服务

1
systemctl  restart sshd

1、这时 你在新终端连 输入正确的密码 就会提示你使用秘钥登录

2-1.png

2、修改sshd客户端的连接配置

  • 将PublicKey移动到第一个
  • 去掉Passwd的勾

2-2.png

3、选中你秘钥保存的路径 按OK保存配置

2-3.png

4、再试尝试连接 输入一开始设置的“证书密码”
第一次连接要输入 之后就不用了

2-4.png

5、查看日志 可以看出我们是使用证书登录

2-5.png

教程结束

# linux
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×