在SSH服务端配置中,首要任务是修改默认端口。通过将/etc/ssh/sshd_config
中的Port 22
更改为非标准端口(例如8888),可显著降低自动化扫描攻击风险。建议配合以下强化设置:
UseDNS no # 禁用DNS反向解析 MaxAuthTries 3 # 限制单次登录尝试次数 PermitRootLogin no # 禁止root直接登录 PasswordAuthentication no # 强制密钥认证
密钥认证配置建议采用ED25519算法生成密钥对:ssh-keygen -t ed25519 -C "your@email"
,并将公钥通过ssh-copy-id -i ~/.ssh/key.pub user@host -p 端口号
部署到目标服务器。
通过客户端配置文件~/.ssh/config
实现快速连接:
Host webserver HostName 192.168.1.100 Port 8888 User admin IdentityFile ~/.ssh/web_ed25519 Compression yes # 启用数据压缩 ServerAliveInterval 60 # 保持连接活跃
常用高效命令组合:
ssh -L 3306:localhost:3306 webserver
ssh webserver "sudo systemctl restart nginx"
rsync -avzP -e 'ssh -p 8888' /local/path user@host:/remote/path
使用Ansible进行批量配置管理,创建ssh_harden.yml
剧本:
hosts: all tasks: name: Update sshd_config lineinfile: path: /etc/ssh/sshd_config regexp: "^{{ item.regex }}$ line: "{{ item.line }} with_items: { regex: '^#Port 22', line: 'Port 8888' } { regex: '^UseDNS', line: 'UseDNS no' } notify: restart sshd
建议配合日志监控工具,实时分析/var/log/auth.log
中的异常登录尝试,并设置fail2ban自动封锁恶意IP。
通过端口变更、密钥认证和服务参数调优的三层防护体系,结合客户端配置优化与自动化管理工具,可构建企业级SSH安全防护架构。定期审计配置文件和监控登录日志,能有效预防暴力破解和中间人攻击,确保建站主机的远程管理安全。
# 客户端
# datetime
# 公钥
# 数据压缩
# 有效预防
# 和服务
# 优化配置
# 端口号
# 断点续传
# 非标准
# 服务端
# 并将
# 配置文件
# 配置管理
# 建站
# SSH
# info
# title
# head
# published