CentOS8 配置SSH使用密钥登录并禁止密码登录

一、概念

SSH 为 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

SSH提供两个级别的认证:

  • 基于口令的认证
  • 基于密钥的认证

基本使用:

#p端口号,user:用户名,host:主机地址
ssh-pportuser@host
ssh-p1022wzs@192.168.1.1

二、配置

这边主要是使用基于密钥的认证方式。 步骤方法:

  • 首先在服务器生成密钥对
  • 服务器安装公钥
  • 配置ssh配置
  • 将服务器私钥下载到客户端进行导入
  • 登录完成
  1. 服务器端生成密钥对
[root@centos84.ssh]#ssh-keygen#创建密钥对
Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):#回车
Enterpassphrase(emptyfornopassphrase):#是否设置私钥密码,可以留空直接回车或者自行设置
Entersamepassphraseagain:#确认输入私钥密码,同上
Youridentificationhasbeensavedin/root/.ssh/id_rsa.#私钥路径
Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.#公钥路径
Thekeyfingerprintis:#下面是密钥指纹
SHA256:HQMUGGtCReiEpejPSRc8XIeXEq4lB9G0hMI4dlsT+/Qroot@centos84
Thekey'srandomartimageis:
+---[RSA3072]----+
|oooBXO*o.|
|=.*=+B=o+|
|o+o=B+*oo|
|...oX..o|
|..o.SE.|
|+o|
|+|
||
||
+----[SHA256]-----+
[root@centos84.ssh]#
到此会在当前用户的家目录下创建一个.ssh的隐藏文件夹,密钥存放在里面。

2.服务器安装公钥

#认证文件配置中指定读取.ssh/authorized_keys,因此我们需要将公钥写入到authorized_keys文件中
catid_rsa.pub>>authorized_keys

3.检查ssh配置文件

#/etc/ssh/sshd_config
RSAAuthenticationyes
PubkeyAuthenticationyes
PermitRootLoginyes

4.使用工具将服务器的.id_rsa文件下载到客户端电脑,进行putty导入 下载回来的id_rsa是没有后缀的文件,但是使用putty需要.ppk格式,这里可以使用putty的密钥生成器进行转换。

转换

转换:

转换格式

将文件保存好。

导入.ppk格式的私钥文件。

导入
导入1

后面只需要输入用户不需要输入密码即可登录。

验证成功

三、禁用密码登录

有时候安全考虑下需要禁止密码登录,可以通过修改配置文件实现。

#/etc/ssh/sshd_config文件修改配置,然后保存
PasswordAuthenticationno
systemctlrestartsshd

使用密码提示登录失败

验证

OK!

本文由 mdnice 多平台发布