插件窝 干货文章 Linux SysOps中SSH的最佳实践指南

Linux SysOps中SSH的最佳实践指南

密钥 bash SSH sshd 1040    来源:    2025-04-11

Linux SysOps中SSH的最佳实践指南

1. 基本安全配置

禁用root直接登录

# 修改/etc/ssh/sshd_config
PermitRootLogin no

限制用户访问

# 只允许特定用户登录
AllowUsers user1 user2
# 或允许特定组
AllowGroups sshusers

更改默认端口

# 修改/etc/ssh/sshd_config
Port 2222  # 改为非标准端口

禁用密码认证(推荐使用密钥)

PasswordAuthentication no

2. 密钥认证最佳实践

生成强密钥对

ssh-keygen -t ed25519 -a 100  # 推荐使用Ed25519
# 或
ssh-keygen -t rsa -b 4096 -o -a 100  # 如果需要RSA

密钥管理

  • 为不同服务和环境使用不同密钥
  • 定期轮换密钥(至少每年一次)
  • 使用ssh-agent管理密钥

3. 高级安全配置

启用两步验证

# 安装Google Authenticator
sudo apt install libpam-google-authenticator
# 配置/etc/ssh/sshd_config
ChallengeResponseAuthentication yes
UsePAM yes

限制IP访问

# 使用TCP Wrappers
# /etc/hosts.allow
sshd: 192.168.1.0/24
# /etc/hosts.deny
sshd: ALL

配置空闲超时

# /etc/ssh/sshd_config
ClientAliveInterval 300
ClientAliveCountMax 0

4. 日志与监控

增强日志记录

# /etc/ssh/sshd_config
LogLevel VERBOSE

使用fail2ban防御暴力破解

sudo apt install fail2ban
# 配置/etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400

5. 网络优化

启用连接复用

# ~/.ssh/config
Host *
    ControlMaster auto
    ControlPath ~/.ssh/control:%h:%p:%r
    ControlPersist 10m

压缩数据传输

# ~/.ssh/config
Host *
    Compression yes

6. 审计与合规

定期检查SSH配置

sudo sshd -t  # 测试配置是否正确
sudo ls -la /etc/ssh/sshd_config  # 检查文件权限

检查已登录用户

who
w
last

7. 备份与恢复

备份SSH配置

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

备份用户密钥

tar -czvf ssh_backup.tar.gz ~/.ssh/

8. 故障排除

连接问题诊断

ssh -vvv user@host  # 启用详细输出
sudo tail -f /var/log/auth.log  # 实时查看认证日志

端口测试

telnet host 22  # 测试端口是否开放
nc -zv host 22  # 另一种测试方法

通过实施这些最佳实践,您可以显著提高Linux系统中SSH服务的安全性和可靠性。