如何安全管理SSH密钥以防止香港VSP服务器被入侵
2025-09-05 17:18
by 管理员
阅读量:77

管理 SSH 密钥是保护香港VPS服务器安全的核心措施之一。
1. 什么是 SSH 密钥?
SSH 密钥是基于公钥加密的认证方式,包含以下两部分:
- 私钥:存储在客户端,用于身份认证。必须严格保护,禁止泄露。
- 公钥:存储在服务器上,用于验证私钥的合法性。
使用 SSH 密钥可以替代传统的用户名密码认证,避免因弱密码而被暴力破解。
2. 生成和配置 SSH 密钥
2.1 生成 SSH 密钥对
在客户端生成 SSH 密钥对(Linux/MacOS/Windows WSL):
-
打开终端,运行以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa:使用 RSA 算法。
-b 4096:密钥长度为 4096 位(更安全)。
-C:添加注释(如邮箱地址)。
-
选择密钥存储路径(默认是 ~/.ssh/id_rsa),并设置密钥密码(强烈建议设置)。
2.2 将公钥部署到服务器
-
使用以下命令将公钥传输到服务器:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip
- 替换
username 和 server_ip 为服务器的用户名和 IP 地址。
- 该命令会将公钥添加到服务器的
~/.ssh/authorized_keys 文件中。
-
或手动添加:
- 将公钥内容复制到服务器上的
~/.ssh/authorized_keys 文件:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 确保文件权限正确:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
2.3 禁用密码登录
为了防止暴力破解和弱密码攻击,禁用 SSH 密码登录:
- 编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
- 修改以下参数:
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
- 保存文件后,重启 SSH 服务:
sudo systemctl restart sshd
3. SSH 密钥安全管理措施
3.1 强化私钥保护
-
设置密钥密码:
- 为私钥设置强密码,防止密钥文件被复制后直接使用。
- 如果需要为现有私钥添加密码:
ssh-keygen -p -f ~/.ssh/id_rsa
-
限制私钥文件权限:
-
存储私钥的安全位置:
- 存储在本地设备的默认位置(如
~/.ssh)。
- 不要将私钥存储在云存储、共享文件夹或未经加密的移动存储设备中。
3.2 使用 SSH Agent 管理密钥
- 启动 SSH Agent:
- 将私钥添加到 SSH Agent:
- 验证添加的密钥:
- 配置 SSH Agent 自动加载密钥(Linux/MacOS):
- 在
~/.bashrc 文件中添加以下内容:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
3.3 定期检查和更换密钥
-
定期更换密钥:
- 定期生成新的密钥对,并替换旧的公钥。
- 删除旧的公钥:
nano ~/.ssh/authorized_keys
删除对应的公钥行后保存。
-
检查授权密钥:
- 登录服务器,检查
~/.ssh/authorized_keys 文件中是否有未知公钥。
- 删除不认识的公钥。
3.4 限制公钥的使用范围
-
为公钥设置特定的使用限制:
- 在
~/.ssh/authorized_keys 文件的每一行公钥前添加限制参数:
from="192.168.0.0/24",command="/path/to/script.sh",no-port-forwarding,no-X11-forwarding ssh-rsa AAAAB3...
- 说明:
from:限制公钥仅允许来自特定 IP 或网段的连接。
command:限制公钥只能执行特定命令。
no-port-forwarding:禁用端口转发。
no-X11-forwarding:禁用 X11 转发。
-
配置示例:
from="203.0.113.0/24",no-port-forwarding,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB3...
3.5 监控 SSH 登录行为
-
查看登录日志:
- 检查登录成功和失败记录:
sudo cat /var/log/auth.log | grep sshd
-
安装 Fail2Ban 防止暴力破解:
- 安装 Fail2Ban:
sudo apt install fail2ban
- 配置
/etc/fail2ban/jail.local 文件:
[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 3600
- 重启 Fail2Ban 服务:
sudo systemctl restart fail2ban
-
实时监控登录活动:
- 使用工具(如
logwatch 或 Zabbix)监控 SSH 登录行为。
4. 保护 SSH 服务本身
4.1 更改默认端口
- 修改 SSH 默认端口(22)为非标准端口:
- 编辑配置文件:
sudo nano /etc/ssh/sshd_config
- 修改以下行:
- 重启 SSH 服务:
sudo systemctl restart sshd
4.2 限制登录用户
- 允许特定用户登录:
- 编辑配置文件:
sudo nano /etc/ssh/sshd_config
- 添加以下行:
- 保存后重启 SSH 服务。
4.3 启用双因素认证(2FA)
- 配置 Google Authenticator:
- 安装 PAM 模块:
sudo apt install libpam-google-authenticator
- 设置 2FA:
- 编辑
/etc/pam.d/sshd,添加:
auth required pam_google_authenticator.so
- 编辑
/etc/ssh/sshd_config,启用 2FA:
ChallengeResponseAuthentication yes
- 重启 SSH 服务。
5. 总结
通过以下措施,可以显著提高 SSH 密钥管理的安全性,防止香港VPS服务器被入侵:
- 生成安全的密钥对:使用强加密算法和长密钥。
- 保护私钥:设置密码、限制权限、存储在安全位置。
- 禁用密码登录:强制使用 SSH 密钥认证。
- 限制公钥使用范围:绑定 IP、禁用端口转发等功能。
- 启用防护措施:安装 Fail2Ban、防火墙、2FA 等。
定期检查 SSH 配置和密钥状态,监控服务器登录行为,才能有效防止VPS服务器潜在的安全威胁。