服务器 SSH 配置
约 667 字大约 2 分钟
LinuxSSHOpenSSH
2026-03-20
SSH 是 Linux 服务器最常见的远程管理入口。实际使用时,重点通常不是“能不能连上”,而是“服务有没有正确启用、配置是否足够安全”。
1. 启用 sshd
首先确认系统已经安装 OpenSSH 服务端,然后启动 sshd。
常见发行版的安装方式大致如下:
# Arch Linux
sudo pacman -S openssh
# Debian / Ubuntu
sudo apt install openssh-server
# RHEL / CentOS / Rocky / AlmaLinux
sudo dnf install openssh-server启动与设置开机自启:
sudo systemctl start sshd
sudo systemctl enable sshd2. 配置文件位置
主配置文件通常在:
/etc/ssh/sshd_config修改完成后,建议先检查配置再重载服务:
sudo sshd -t
sudo systemctl restart sshd3. 常见配置项
Port:指定监听端口,默认是 22。PermitRootLogin:是否允许 root 直接登录。PasswordAuthentication:是否允许密码登录。PubkeyAuthentication:是否允许公钥登录。AllowUsers:允许登录的用户名列表。DenyUsers:禁止登录的用户名列表。AllowGroups:允许登录的用户组列表。DenyGroups:禁止登录的用户组列表。MaxAuthTries:最大认证尝试次数。Banner:登录提示信息文件。X11Forwarding:是否允许 X11 转发。LogLevel:日志级别。PrintMotd:是否显示登录公告。PrintLastLog:是否显示上次登录信息。
4. 一个更稳妥的最小配置思路
对于公网服务器,通常至少建议做到下面几点:
- 尽量关闭 root 直接登录。
- 优先使用公钥认证。
- 如果没有明确需求,关闭密码登录。
- 限制允许登录的用户或用户组。
- 修改完配置后一定先做语法检查,再重启服务。
例如:
Port 22
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers deploy admin
MaxAuthTries 35. 排查顺序
如果改完后连不上,可以按这个顺序检查:
systemctl status sshd看服务是否正常运行。sshd -t看配置语法是否有误。- 检查防火墙和安全组是否放行了目标端口。
- 检查
AllowUsers、AllowGroups是否把自己挡在外面。 - 检查认证方式是否和客户端实际使用方式一致。
6. 使用建议
- 在远程服务器上修改 SSH 配置时,不要先断开现有连接,避免把自己锁在门外。
- 如果准备把 SSH 暴露到公网,建议再配合 fail2ban、云防火墙或更严格的访问控制。
- 如果后续需要管理开机自启和服务状态,可以继续看 5.systemctl 使用实例。