配置 SSH 公钥认证登录

By | 2023年4月1日

概述

公钥认证采用私钥签名,公钥验证,相比账号密码验证登录更具有安全性。实现分四步:

  1. 生成密钥(公钥与私钥)
  2. 放置公钥到服务器指定用户目录的 .ssh/authorized_key 文件中
  3. 配置SSH客户端使用密钥登录
  4. 客户端测试
  5. 测试成功后关闭账号密码的登录方式(可选)

第一、二步

# 生成密钥对(一路回车都用默认配置即可)
ssh-keygen -t rsa
ls ~/.ssh/

# 创建文件 authorized_keys,并赋予 600 权限
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 将公钥内容追加到 authorized_keys 文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

第三步

# 修改 SSH 配置
vi /etc/ssh/sshd_config

找到并修改以下配置项

# 开启公钥认证登录
PubkeyAuthentication yes
# root 用户能否通过 SSH 登录
PermitRootLogin yes
## 添加公钥的保存文件(找到此配置后,将前面的 # 注释掉即可)
AuthorizedKeysFile .ssh/authorized_keys

## 开启私钥登录[RSAAuthentication (rsa认证)是只支持第一代SSH通讯协议使用的配置项,新操作系统默认使用第二代协议了,配置里也找不到了
RSAAuthentication yes

改好后重启 sshd 服务

systemctl restart sshd

第四步

将服务器上生成的 id_rsa 私钥传到 SSH 客户端(如 XFTP),测试公钥认证是否可用,用户名填写服务器上 .ssh 目录所在的用户。

第五步

vi /etc/ssh/sshd_config

找到并修改以下配置项

PasswordAuthentication no

改好后重启服务

systemctl restart sshd

最后提醒:一定要保存好 id_rsa 私钥文件不要弄丢,重命名这个私钥文件没关系。

参考

Xshell登录服务器的两种认证方式

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注