专业的编程技术博客社区

网站首页 > 博客文章 正文

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

baijin 2025-02-09 11:14:40 博客文章 10 ℃ 0 评论

使用 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 密钥实现无密码登录并实施上述安全加固措施,可以有效提高服务器的安全性。定期检查和更新安全设置也是确保长期安全的重要环节。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表