配置 SSH Key 实现无密码登录和安全加固

配置 SSH Key 实现无密码登录和安全加固

解决方案goocz2025-02-01 11:08:1923A+A-

使用 SSH 密钥对实现无密码登录可以提高安全性,避免在网络中传输明文密码。以下是详细的配置步骤和安全加固措施。

1. 生成 SSH 密钥对

在本地计算机上生成 SSH 密钥对:

bash

复制

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按提示输入文件保存路径(默认为 ~/.ssh/id_rsa)和密码(可以选择不设置密码)。

2. 将公钥复制到服务器

使用 ssh-copy-id 命令将公钥复制到目标服务器:

bash

复制

ssh-copy-id username@your_server_ip

输入密码后,公钥将自动添加到远程服务器的 ~/.ssh/authorized_keys 文件中。

3. 测试无密码登录

尝试使用 SSH 登录服务器:

bash

复制

ssh username@your_server_ip

如果配置成功,您将能够无需输入密码即可登录。

4. 配置 SSH 服务

4.1 修改 SSH 配置文件

编辑 SSH 配置文件 /etc/ssh/sshd_config:

bash

复制

sudo nano /etc/ssh/sshd_config

进行以下设置:

  • 禁用密码验证
  • bash
  • 复制
  • PasswordAuthentication no
  • 禁用 root 登录
  • bash
  • 复制
  • PermitRootLogin no
  • 更改 SSH 端口(可选,建议非标准端口):
  • bash
  • 复制
  • Port 2222

4.2 重启 SSH 服务

保存更改并重启 SSH 服务:

bash

复制

sudo systemctl restart sshd

5. 安全加固措施

5.1 使用防火墙

启用防火墙,允许特定端口(如 2222):

bash

复制

sudo ufw allow 2222/tcp
sudo ufw enable

5.2 安装和配置 Fail2Ban

安装 Fail2Ban,防止暴力破解:

bash

复制

sudo apt install fail2ban  # Ubuntu/Debian
sudo yum install fail2ban  # CentOS/RHEL

配置 Fail2Ban,监控 SSH:

bash

复制

sudo nano /etc/fail2ban/jail.local

添加或修改以下内容:

ini

复制

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 600

重启 Fail2Ban:

bash

复制

sudo systemctl restart fail2ban

5.3 定期更新和监控

  • 定期更新系统:确保操作系统和软件保持最新。
  • bash
  • 复制
  • sudo apt update && sudo apt upgrade -y # Ubuntu/Debian sudo yum update -y # CentOS/RHEL
  • 监控登录日志:定期检查 /var/log/auth.log 或 /var/log/secure,查看登录活动。

5.4 使用 SSH 密钥的额外安全性

  • 为私钥设置密码:虽然无密码登录方便,但使用密码保护私钥可以增加安全性。

6. 总结

通过配置 SSH 密钥实现无密码登录并实施上述安全加固措施,可以有效提高服务器的安全性。定期检查和更新安全设置也是确保长期安全的重要环节。

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5