### [VPS的SSH怎么配更安全?密钥认证失败和端口冲突排查](https://www.jiyueip.com/article/13604) **Published:** 2026-07-30T09:55:46 **Author:** 斑斓助理 **Excerpt:** 按网上的教程配了SSH密钥、禁了密码登录,结果退出后连不上了——这种翻车事故每年都在重复上演。本文把SSH配置中的常见翻车点和恢复方法系统讲一遍。 翻车一:改了配置文件重启SSH后连不上 最经典的翻车:改了/etc/ssh/sshd_con 按网上的教程配了SSH密钥、禁了密码登录,结果退出后连不上了——这种翻车事故每年都在重复上演。本文把SSH配置中的常见翻车点和恢复方法系统讲一遍。 ## 翻车一:改了配置文件重启SSH后连不上 最经典的翻车:改了/etc/ssh/sshd\_config、systemctl restart sshd、关掉当前SSH窗口——然后就再也连不上了。问题出在你退出之前没有验证新配置。 正确的操作顺序:改了配置后→先systemctl reload sshd(别restart,reload不断开现有连接)→新开一个终端窗口尝试用新配置登录→确认新窗口能连上→再关旧窗口。如果新窗口连不上,旧窗口还在,可以改回去。 reload和restart的区别:reload平滑重载配置不影响已建立的SSH连接,restart断掉所有连接。你当前正在用的就是这个连接——restart之后你就被踢出去了。 ## 翻车二:密钥权限不对 SSH对密钥文件权限极其敏感——权限设错了直接拒绝使用。正确的权限: ``` # 服务端 chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys # 客户端 chmod 700 ~/.ssh chmod 600 ~/.ssh/id_ed25519 # 私钥必须是600 ``` 错误表现:SSH连接时提示”Permission denied (publickey)”但密钥明明放对了——大概率是authorized\_keys或.ssh目录的权限不对。 ## 翻车三:密钥格式不兼容 用ssh-keygen -t ed25519生成的新格式密钥在旧版SSH服务器上可能不识别。改成传统PEM格式: ``` ssh-keygen -p -m PEM -f ~/.ssh/id_ed25519 ``` 服务端日志/var/log/auth.log里能看到具体的拒绝原因——tail -f /var/log/auth.log然后客户端尝试连接,实时看到日志输出。 ## 翻车四:改端口后忘了开防火墙 改了SSH端口从22到别的端口,但UFW/iptables/云服务商安全组没放新端口。连不上时先确认:服务器上UFW有没有allow新端口、云服务商后台安全组有没有放行新端口的入站规则。 雨云VPS的防火墙在控制面板里设置,优惠码 **admin01** 首月五折。 ## 翻车五:SELinux阻断SSH CentOS/RHEL系统的SELinux可能阻止SSH使用非标准端口。改端口后需要更新SELinux策略: ``` semanage port -a -t ssh_port_t -p tcp 新端口号 # 如果semanage没装:yum install policycoreutils-python-utils ``` ## 被锁外面了的恢复方法 如果已经被锁外面了:VPS控制台VNC登录(大部分服务商都支持,不依赖SSH)→登录后修改配置→systemctl reload sshd→如果连VNC都进不去(系统启动卡住)→用救援模式挂载系统盘改配置→或者如果有快照就回滚。 预防翻车的最好方案:改SSH配置的同时保持一个已连接的窗口打开不关,直到确认新配置能正常工作。 ## 常见问题 ### 密钥登录配好了为什么还是提示输入密码? PasswordAuthentication还没设为no——SSH会先尝试密钥、失败后回退到密码登录。这不是密钥配置失败,是密码认证还开着做兜底。确认密钥登录正常后再关密码认证。 ### 可以用同一个密钥登录多台VPS吗? 可以而且常见做法——一个私钥对应对个服务器的authorized\_keys里放同一个公钥。但如果私钥泄露,所有用这个密钥的服务器都面临风险。生产环境建议不同服务器用不同密钥。 ### authorized\_keys文件里可以放多个公钥吗? 可以——一行一个公钥。多个管理员各用自己的密钥登录同一个账号,或者一台VPS允许从多台客户端登录。 **Tags:** 云服务器, 建站教程, 网站运维 **Categories:** 行业洞察 ---