温馨提示×

Debian SSH如何配置安全连接

小樊
36
2025-10-16 17:44:49
栏目: 智能运维

1. 安装OpenSSH服务器
在Debian系统上,首先通过以下命令安装OpenSSH服务器(若未安装):

sudo apt update && sudo apt install openssh-server -y

安装完成后,SSH服务会自动启动,可通过sudo systemctl status ssh验证服务状态(显示“active (running)”即为正常)。

2. 修改SSH配置文件加固
编辑SSH主配置文件/etc/ssh/sshd_config(修改前建议备份:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak),调整以下关键参数以提升安全性:

  • 修改默认端口:将Port 22改为非标准端口(如Port 2222),减少自动化暴力破解工具的扫描目标;
  • 禁用root远程登录:设置PermitRootLogin no,避免攻击者直接尝试破解root账户;
  • 禁用密码认证:设置PasswordAuthentication no(需提前配置密钥认证),强制使用更安全的密钥认证;
  • 禁用空密码登录:设置PermitEmptyPasswords no,防止无密码账户被滥用;
  • 限制登录用户:设置AllowUsers your_username(替换为实际用户名),仅允许指定用户登录;
  • 禁用不必要的转发:设置X11Forwarding no(如无需X11图形转发)和AllowTcpForwarding no,减少潜在攻击面。

3. 配置SSH密钥认证(推荐)
密钥认证是比密码更安全的身份验证方式,步骤如下:

  • 生成密钥对:在本地客户端运行ssh-keygen -t ed25519(推荐,安全性更高)或ssh-keygen -t rsa -b 4096(兼容性好),按提示保存密钥(默认路径~/.ssh/id_ed25519/~/.ssh/id_rsa),可选择设置私钥密码(增强私钥安全性);
  • 复制公钥到服务器:使用ssh-copy-id -p 2222 your_username@server_ip(若修改了端口,需替换2222)命令,将公钥自动复制到服务器的~/.ssh/authorized_keys文件中;若未安装ssh-copy-id,可手动复制:
    cat ~/.ssh/id_ed25519.pub | ssh -p 2222 your_username@server_ip 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
    
  • 设置权限:确保服务器上.ssh目录权限为700chmod 700 ~/.ssh),authorized_keys文件权限为600chmod 600 ~/.ssh/authorized_keys),防止其他用户读取私钥或篡改授权文件。

4. 配置防火墙限制访问
使用ufw(Uncomplicated Firewall)限制SSH端口访问,仅允许可信IP地址连接:

  • 允许SSH端口(如2222):sudo ufw allow 2222/tcp
  • 启用防火墙:sudo ufw enable
  • 查看防火墙状态:sudo ufw status(确认规则生效)。
    若使用firewalld(如CentOS),可运行sudo firewall-cmd --permanent --add-port=2222/tcpsudo firewall-cmd --reload

5. 重启SSH服务应用配置
修改配置文件后,需重启SSH服务使更改生效:

sudo systemctl restart ssh

若修改了端口等关键参数,建议通过本地终端(未关闭的SSH会话)操作,避免因配置错误导致无法远程连接。

6. 日志监控与日常维护
定期检查SSH日志(路径:/var/log/auth.log),分析登录尝试情况:

  • 查看最近登录记录:sudo tail -n 50 /var/log/auth.log | grep 'sshd'
  • 查找失败登录尝试:sudo grep 'Failed password' /var/log/auth.log
  • 查找成功登录记录:sudo grep 'Accepted' /var/log/auth.log
    通过日志可及时发现异常登录行为(如频繁失败尝试),并采取相应措施(如封禁IP)。

0