配置 SSH 2026 年在 Linux 服务器上安装 OpenSSH 服务器,启动并启用 sshd 服务,允许 SSH 在防火墙和云安全组中设置端口,创建一个非root的sudo用户,并进行设置。 SSH 采用基于密钥的身份验证,强化 /etc/ssh/sshd_config(禁用 root 和密码登录),并在关闭旧会话之前测试新会话。
安全外壳(SSH是最安全的方法 manage 远程配置 Linux 服务器。在本分步指南中,您将学习如何配置 SSH 本指南将指导您如何在 Linux 服务器上正确部署 Linux 系统,从安装到安全加固,并遵循 2026 年的最佳实践。无论您运行的是 Ubuntu、Debian、RHEL、AlmaLinux 还是 Rocky Linux,本指南都能帮助您顺利完成部署。 SSH ACCESS 快速、稳定、安全。
您将学到什么(快速概览)安装并启用 OpenSSH 服务器让 SSH 在 UFW 或 firewalld 中 云 防火墙创建一个非root权限的sudo用户成立 SSH 基于密钥的身份验证加强 sshd_config 以适应生产环境可选:Fail2ban、双因素认证 SFTP仅限用户常见故障排查 SSH 快速出错硬件需求Linux 服务器(Ubuntu 24.04 LTS/22.04、Debian 12、RHEL/AlmaLinux/Rocky 9)root 权限或具有 sudo 权限的用户本地计算机 SSH 客户端(Linux/macOS:内置;Windows 10/11:Open)SSH 客户端或 PuTTY)防火墙或安全组访问权限(云提供商通常默认阻止端口)分步指南:配置 SSH Linux Server (2026)1)确定您的发行版并更新软件包cat /etc/os-release
# Update packages
# Ubuntu/Debian
sudo apt update && sudo apt -y upgrade
# RHEL/AlmaLinux/Rocky
sudo dnf -y update2) 安装 OpenSSH 服务器# Ubuntu/Debian
sudo apt -y install openssh-server
# RHEL/AlmaLinux/Rocky
sudo dnf -y install openssh-server openssh-clients可选SSH 是行业标准。大多数现代发行版都提供 OpenGL。SSH 9.x 版本支持强大的算法和现代默认设置。
3) 启动并启用 sshd 服务,使其在启动时正常运行。sudo systemctl enable --now ssh # Ubuntu/Debian (service name may be "ssh")
sudo systemctl enable --now sshd # RHEL family (service name is "sshd")
sudo systemctl status sshd ssh | cat4)允许 SSH 在您的防火墙(和云安全组)中如果你的 服务器位于云端。 首先,在提供商的安全组中打开 TCP 22 端口(或您自定义的端口)。然后在您的操作系统防火墙中允许该端口的流量:
# UFW (Ubuntu)
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status
# firewalld (RHEL/Alma/Rocky)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
sudo firewall-cmd --list-all提示:如果您计划更改 SSH 端口,暂时允许两个端口同时使用以避免锁定。
5) 创建一个非root权限的sudo用户# Create user and set password
sudo adduser deploy
sudo passwd deploy
# Grant sudo privileges
# Ubuntu/Debian
sudo usermod -aG sudo deploy
# RHEL/Alma/Rocky
sudo usermod -aG wheel deploy以 root 用户身份登录 SSH 这样做有风险。为了更安全地进行管理,请使用具有 sudo 权限的专用用户。
6)配置 SSH 基于密钥的身份验证在本地计算机上生成密钥对。为了速度和安全性,建议使用 ed25519 密钥:
# On your local machine
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519 -C "[email protected]"
# Copy your public key to the server
ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@server_ip
# If ssh-copy-id is unavailable, paste manually:
# On the server (as deploy):
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "your_public_key_here" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keysWindows 用户可以使用 PowerShell 的 Open 函数。SSH 客户端操作方式相同。如果使用 PuTTY,请使用 PuTTYgen 生成密钥,并将公钥放入 authorized_keys 文件中。
7) 加强 /etc/ssh/sshd_config 文件编辑 SSH 守护进程配置符合当前最佳实践。测试新会话时,请保持现有会话处于打开状态。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config
# Recommended settings (add or update):
Port 22
Protocol 2
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
KbdInteractiveAuthentication no
PermitEmptyPasswords no
MaxAuthTries 3
LoginGraceTime 20
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers deploy
AuthorizedKeysFile .ssh/authorized_keys
HostKeyAlgorithms ssh-ed25519,ssh-rsa
PubkeyAcceptedKeyTypes ssh-ed25519,ssh-rsa
# Optional, if you run IPv6:
AddressFamily any
# SFTP subsystem (default on most distros):
Subsystem sftp /usr/lib/ssh/sftp-server更改 SSH 端口可以减少机器人程序的干扰。如果要更改端口,请先更新防火墙和云规则,然后再进行设置。 2222港 (例如)并测试新的登录方式。
# Apply changes
sudo sshd -t # syntax check
sudo systemctl restart sshd8)测试一个新的 SSH 在您注销之前,请先登录会话# From your local machine (keep old session open)
ssh -p 22 deploy@server_ip
# If you changed ports:
ssh -p 2222 deploy@server_ip确认您拥有 sudo 权限后,关闭旧会话。这可以防止意外锁定帐户。
9) 可选的加固措施:Fail2ban、双因素身份验证 (2FA) 和 SFTP仅限用户Fail2ban:阻止重复的失败尝试。双因素身份验证 (PAM + Google Authenticator):在登录时添加基于时间的一次性密码。SFTP-仅限用户:限制某些帐户在没有 shell 访问权限的情况下进行文件传输。# Fail2ban (Ubuntu/Debian)
sudo apt -y install fail2ban
# Fail2ban (RHEL family)
sudo dnf -y install fail2ban
sudo systemctl enable --now fail2ban
# Basic jail for SSH (create /etc/fail2ban/jail.local)
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h要启用双因素身份验证 (2FA),请安装 libpam-google-authenticator 并按照提示操作。测试 2FA 时,务必保留一个应急控制台(服务提供商的 Web 控制台),以避免账户被锁定。
10)监控和审计 SSH ACCESS# Live logs
sudo journalctl -u ssh -f || sudo journalctl -u sshd -f
# Recent logins
last -a | head
# Who is logged in
who故障排除:快速修复权限被拒绝(公钥): 检查 ~/.ssh 的权限(.ssh 为 700,authorized_keys 为 600)和所有权(youruser:youruser)。连接超时: 在操作系统防火墙和云安全组中打开端口;确认IP/端口是否正确。sshd 无法启动: 运行 sudo sshd -t 验证配置;必要时恢复备份。SELinux 拒绝(RHEL): 确保上下文正确: restorecon -Rv /home/youruser/.ssh.已更换端口但无法连接: 在重启 sshd 之前,请在防火墙/安全组中允许新端口。安全最佳实践 SSH 被回收绝大部分储备使用 SSH 键 (ed25519),密钥生效后禁用密码。禁用 root 用户登录,并使用 AllowUsers/AllowGroups 进行限制。限制身份验证尝试次数并减少登录宽限时间。轮换员工钥匙,并在员工离职时自动移除钥匙。生产环境的管理员访问权限应使用跳转主机或 VPN。保持开放SSH 操作系统已打补丁;尽可能启用自动安全更新。使用 SIEM 或云监控记录并发出异常活动警报。示例:最小化的生产就绪 sshd_config# /etc/ssh/sshd_config (example)
Port 22
Protocol 2
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
LoginGraceTime 20
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers deploy
AuthorizedKeysFile .ssh/authorized_keys
# Strong keys (keep RSA only if you have legacy keys)
HostKeyAlgorithms ssh-ed25519,ssh-rsa
PubkeyAcceptedKeyTypes ssh-ed25519,ssh-rsa
# Keep default SFTP
Subsystem sftp /usr/lib/ssh/sftp-server发行版差异概览服务名称: Ubuntu/Debian 使用“ssh”,RHEL 系列使用“sshd”。防火墙: Ubuntu 通常使用 UFW;RHEL 系列使用 firewalld。团体: Ubuntu 的 sudo 用户组是“sudo”;RHEL 使用的是“wheel”。SELinux: 默认在 RHEL 系列上强制执行;如果您编辑 ~/.ssh,则恢复上下文。常见问题解答:配置 SSH 在 Linux 服务器上我如何启用 SSH 在 Ubuntu 24.04/22.04 上?安装打开SSH 服务器端,启动并启用服务,然后打开防火墙:
sudo apt update && sudo apt -y install openssh-serversudo systemctl enable –now sshsudo ufw 允许 22/tcp && sudo ufw 启用
如何生成 SSH 无需密码即可使用密钥登录?在本地计算机上运行 ssh-keygen,然后将生成的公钥复制到服务器:
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ipssh 用户@服务器IP
改变 SSH 到2026年,这个港口还值得投资吗?是的,这是一种降噪措施。它不能取代真正的安全措施,但可以减少自动扫描。务必将非标准端口与基于密钥的登录、禁用 root 登录以及速率限制(例如 Fail2ban)结合使用。
如何安全地禁用密码验证?首先确保 SSH 键 工作。然后设置 PasswordAuthentication no 在 /etc/ssh/sshd_config 中运行 sudo sshd -t 验证,并且 sudo systemctl restart sshd保持当前会话打开,并在注销前测试新会话。
为什么启用密钥后会出现“权限被拒绝(公钥)”的错误?权限或所有权错误是常见原因。解决方法:
chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keyschown -R $USER:$USER ~/.ssh# SELinux 系统:restorecon -Rv ~/.ssh
一锤定音总之,要进行配置 SSH 上 Linux服务器 2026 年,以正确的方式安装 OpenSSH启用该服务,允许该端口,使用 SSH 密钥,并使用经过验证的安全设置强化 sshd_config。仔细测试更改,监控日志,并考虑以下因素。 manage来自 d 的支持 YouStable 如果您想要一个安全、无需人工干预的设置。