CentOS8 配置SSH使用密钥登录并禁止密码登录
CentOS8 配置SSH使用密钥登录并禁止密码登录
概念
SSH 为 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
SSH提供两个级别的认证:
- 基于口令的认证
- 基于密钥的认证
基本使用:
# p 端口号,user:用户名,host:主机地址
ssh -p port user@host
ssh -p 1022 wzs@192.168.1.1
配置
这边主要是使用基于密钥的认证方式。
步骤方法:
- 首先在服务器生成密钥对
- 服务器安装公钥
- 配置ssh配置
- 将服务器私钥下载到客户端进行导入
- 登录完成
- 服务器端生成密钥对
[root@centos84 .ssh]# ssh-keygen # 创建密钥对
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:HQMUGGtCReiEpejPSRc8XIeXEq4lB9G0hMI4dlsT+/Q root@centos84
The key's randomart image is:
+---[RSA 3072]----+
| oooBXO*o. |
| =.*=+B=o+ |
|o +o=B+*o o |
|. ..oX .. o |
| . . o .SE. |
| + o |
| + |
| |
| |
+----[SHA256]-----+
[root@centos84 .ssh]#
到此会在当前用户的家目录下创建一个.ssh的隐藏文件夹,密钥存放在里面。
2.服务器安装公钥
# 认证文件配置中指定读取.ssh/authorized_keys,因此我们需要将公钥写入到authorized_keys文件中
cat id_rsa.pub >> authorized_keys
3.检查ssh配置文件
# /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
4.使用工具将服务器的.id_rsa文件下载到客户端电脑,进行putty导入
下载回来的id_rsa是没有后缀的文件,但是使用putty需要.ppk格式,这里可以使用putty的密钥生成器进行转换。
转换:
将文件保存好。
导入.ppk格式的私钥文件。
后面只需要输入用户不需要输入密码即可登录。
5.禁用密码登录
# /etc/ssh/sshd_config文件修改配置,然后保存
PasswordAuthentication no
systemctl restart sshd
使用密码提示登录失败
OK!
点点滴滴,积少成多,终有一日能发挥用处。