新手配置linux ssh应遵循“先通再固”原则:先确保基础连通(ping+ssh username@ip),再逐步加固,包括禁用root直连、启用密钥登录、限制用户范围、设置空闲超时;生产环境可换端口、禁dns解析、绑定监听地址并配合防火墙最小化开放。

新手配置Linux SSH连接,核心是“先通再固”——先确保能连上,再逐项加固。不建议一步到位禁用密码或改端口,容易把自己锁在外面。重点在配置逻辑清晰、每步可验证。
基础服务安装与连通性验证
大多数Ubuntu/CentOS已预装OpenSSH服务,但需确认状态:
- 运行 sudo systemctl status ssh(Ubuntu/Debian)或 sudo systemctl status sshd(RHEL/CentOS),看到 active (running) 才算就绪
- 若未运行,执行 sudo apt install openssh-server -y(Ubuntu)或 sudo dnf install openssh-server -y(CentOS 8+)
- 首次连接前,在本机终端试 ping 服务器IP;成功后用 ssh username@ip 测试基础连通(此时仍走默认22端口和密码登录)
关键安全配置四步法
修改 /etc/ssh/sshd_config 前务必先备份:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
- 禁用root直连:找到 PermitRootLogin 行,设为 no。运维应使用普通用户登录后再 sudo su -
- 启用密钥登录,逐步停用密码:先确保 PubkeyAuthentication yes 和 PasswordAuthentication yes 同时开启;客户端生成密钥后上传,测试新密钥登录成功,再把 PasswordAuthentication 改为 no
- 限制可登录用户范围:添加 AllowUsers alice bob@192.168.1.*(支持用户名+IP通配),避免用 DenyUsers,白名单更可靠
- 调整空闲超时防会话滞留:加入 ClientAliveInterval 300(5分钟发一次心跳)、ClientAliveCountMax 0(无响应即断开)
生产环境推荐加固项
完成基础配置并稳定运行1–2天后,再启用以下增强项:
- 更换非默认端口:如设 Port 2222,改完后立即用新端口测试连接(ssh -p 2222 user@ip),确认成功再注释或删掉原 Port 22 行
- 关闭DNS反向解析:添加 UseDNS no,加快登录响应,减少潜在延迟风险
- 指定监听地址:如服务器有内外网双网卡,用 ListenAddress 192.168.1.100 绑定内网IP,避免SSH暴露在公网
- 配合防火墙最小放行:用 ufw 或 firewalld 只开放实际使用的端口(如2222/tcp),禁用其他无关端口
密钥管理与日常维护
密钥不是一劳永逸,需主动管理:
- 客户端生成推荐命令:ssh-keygen -t ed25519 -C "your_email@example.com"(比RSA更快更安全)
- 公钥上传后检查权限:chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys,权限不对会导致认证失败
- 定期查看登录日志:sudo tail -20 /var/log/auth.log | grep 'Accepted\|Failed',留意异常IP或高频失败尝试
- 重启生效后,始终用新终端窗口测试连接,不要直接退出当前会话——这是新手最常踩的坑











