插件窝 干货文章 如何使用加密的远程登录协议(SSH)保护CentOS服务器

如何使用加密的远程登录协议(SSH)保护CentOS服务器

SSH sudo 配置 密钥 651    来源:    2025-04-16

使用SSH保护CentOS服务器的完整指南

SSH(Secure Shell)是保护CentOS服务器远程访问的行业标准协议。以下是配置安全SSH访问的详细步骤:

1. 基本SSH安装与配置

安装SSH服务

sudo yum install openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd

修改SSH配置文件

编辑/etc/ssh/sshd_config文件:

sudo vi /etc/ssh/sshd_config

2. 关键安全配置选项

基本安全设置

Port 2222                     # 更改默认端口(22)
Protocol 2                    # 仅使用SSH协议v2
PermitRootLogin no            # 禁止root直接登录
MaxAuthTries 3                # 最大认证尝试次数
LoginGraceTime 1m             # 登录宽限时间

用户访问控制

AllowUsers user1 user2        # 只允许特定用户登录
AllowGroups sshusers          # 只允许特定用户组登录
DenyUsers baduser             # 明确拒绝某些用户
DenyGroups badgroup           # 明确拒绝某些用户组

加密与认证设置

PasswordAuthentication no     # 禁用密码认证,强制使用密钥
PubkeyAuthentication yes      # 启用公钥认证
PermitEmptyPasswords no       # 禁止空密码
X11Forwarding no              # 禁用X11转发(除非需要)

3. 设置SSH密钥认证

生成密钥对(在客户端)

ssh-keygen -t ed25519 -C "your_email@example.com"
# 或使用RSA(兼容性更好)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

将公钥复制到服务器

ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 user@your_server_ip

4. 高级安全措施

启用双重认证

sudo yum install google-authenticator
google-authenticator

然后在sshd_config中添加:

ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive

设置Fail2Ban防止暴力破解

sudo yum install epel-release
sudo yum install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

配置Fail2Ban(创建/etc/fail2ban/jail.local):

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 1h

5. 防火墙配置

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

6. 应用配置并测试

sudo systemctl restart sshd

测试连接(从另一终端):

ssh -p 2222 user@your_server_ip

7. 定期维护

  • 定期更新SSH软件包:sudo yum update openssh*
  • 定期检查日志:sudo tail -f /var/log/secure
  • 定期轮换密钥(建议每6-12个月)

最佳实践建议

  1. 使用非标准端口但避免"隐蔽性安全"(不要依赖端口隐蔽)
  2. 为每个用户创建单独账户,禁用root远程登录
  3. 实施最小权限原则
  4. 考虑使用证书颁发机构(CA)进行SSH认证
  5. 对关键服务器设置基于IP的访问限制
  6. 定期审计SSH配置和访问日志

通过以上配置,您的CentOS服务器SSH访问将具备企业级安全性。