服务器怎样禁止免密SSH登录,ssh免密登录怎么关闭?

服务器禁用免密SSH登录的核心方法是修改SSH服务端配置文件,关闭公钥认证或清空授权密钥,然后重启ssh服务使配置生效。具体操作涉及/etc/ssh/sshd_config文件中的PubkeyAuthentication参数,以及~/.ssh/authorized_keys文件的管理,本文将从检测、配置到验证,拆解完整的禁用步骤。

服务器禁用免密SSH登录方法:先摸清你的认证现状

想彻底关掉免密登录,第一步得先搞清楚服务器当前是怎么认证的,登录服务器后,执行以下命令查看SSH服务端的生效配置:

【ssh】vscode免密登录远程服务器
加载中
【ssh】vscode免密登录远程服务器
我
我不是匠人
8242--
原视频地址
sshd -T | grep -E 'pubkeyauthentication|passwordauthentication|authorizedkeysfile'

输出结果中,pubkeyauthentication yes表示当前允许密钥登录,passwordauthentication yes表示允许密码登录。 如果前者为yes且authorizedkeysfile指向了默认路径,那么任何持有对应私钥的人都能免密进入系统,这正是需要处理的风险点。

另一个常见场景是云服务器控制台里的“密钥对”功能,简米云、酷番云等平台在创建实例时若选择了密钥登录,默认会关闭密码登录,同时启用免密认证,这种情况下,仅修改系统内部配置文件还不够,还需要在控制台重置实例密码或调整登录方式,否则重启后配置可能被云平台的初始化脚本覆盖。

检测时还要留意~/.ssh/authorized_keys文件,执行:

cat ~/.ssh/authorized_keys

非空,说明至少有一位用户的公钥被信任。逐行检查每个条目,确认是否都是你认识的密钥。 凡是来历不明的公钥,一律删掉。

禁用SSH密钥认证的两种配置路径

修改SSH认证方式有两条路,全局配置和用户级配置,适用场景不同,建议按需选择。

全局关闭公钥认证:适用于多用户服务器

对于有多人使用的服务器,直接在/etc/ssh/sshd_config中修改是最稳妥的做法,编辑该文件,找到或新增以下参数:

PubkeyAuthentication no
PasswordAuthentication yes

第一行关闭公钥认证,第二行明确开启密码认证,避免出现“两边都关了登不进去”的尴尬,保存后执行:

systemctl restart sshd    # CentOS/RHEL系统
systemctl restart ssh      # Debian/Ubuntu系统

重启后,所有用户都无法使用密钥登录,必须走密码验证。 这个方案很彻底,适用于对安全要求较高、且所有使用者都能记住密码的场景。

清理特定用户的授权密钥:适用于保留少数密钥的场景

如果你只是想让某几个用户不能免密登录,但其他人还需要密钥认证,那就别动全局配置,直接清空目标用户的authorized_keys文件:

> /home/用户名/.ssh/authorized_keys

注意>符号会把文件内容清空但不删除文件,执行后再确认一下SSH行为:

ssh -o PreferredAuthentications=publickey 用户名@服务器IP

如果服务器返回Permission denied (publickey),说明该用户的密钥登录已被禁止,行业共识认为,在保留密钥认证的前提下清理单个用户授权,比全局关闭更灵活,适合有运维审计需求的团队。

SSH免密登录如何关闭:别漏掉这三处隐藏入口

实操中,很多人改了sshd_config却发现免密登录仍然生效,原因往往出在下面三个地方。

检查ssh客户端配置中的Host别名覆盖

本地电脑的~/.ssh/config文件里,可能给服务器设置了Host别名,并且在别名下强制指定了PreferredAuthentications publickey,这种客户端配置会绕过服务端的认证偏好协商,建议在该文件中调整或删除相关偏好设置,确保客户端允许交互式密码输入。

注意云平台的安全组和VNC入口

部分云平台的安全组规则会放行特定端口的SSH访问,但真正影响免密登录的是实例的登录管理配置,如果云控制台显示“密钥对已绑定”,那么即使系统内部关闭了公钥认证,云平台自带的VNC终端或者“一键登录”功能仍可能调用密钥对完成身份验证,此时需要到云平台控制台,解绑密钥对或重置登录密码,才算真正关掉免密通道。

处理SSH服务配置文件中的Match块

sshd_config中如果存在Match User或Match Group段落,这些条件块里的配置会覆盖全局设置,比如全局设了PubkeyAuthentication no,但Match块中写了PubkeyAuthentication yes,那么匹配到的用户仍然可以免密登录,检查配置时,务必同时查看条件块内容,或者用sshd -T查看最终生效值。

设置完免密关闭后,如何验证安全策略生效

配置改完不等于工作结束,验证这一步能帮你确认策略真的落地,推荐按以下顺序测试:

  • 从本地发起带密钥的SSH连接,预期结果是提示输入密码或直接拒绝,若依旧免密进入,说明配置未生效。
  • 检查系统日志,执行journalctl -u sshd | tail -50,找找有没有Failed publickey或Connection closed by authenticating user之类的记录。
  • 用密码登录测试,确保密码认证功能正常,避免把自己锁在门外。
  • 审查SSH服务端口是否暴露在公网,若端口对外开放但密码强度偏弱,建议配合fail2ban限制暴力破解。

据统计,相当一部分服务器入侵事件发生在SSH端口暴露、且未关闭密钥认证的情况下。关闭免密登录只是基础动作,搭配定期轮换密码和密钥,才能形成有效的访问控制闭环。

常见问题排查:改完SSH配置无法用密码登录

关闭密钥认证后,有时会碰到“密码怎么输都不对”的情况,届时应逐项核对sshd_config中的PermitRootLogin、PasswordAuthentication和ChallengeResponseAuthentication参数是否都允许了密码登录。确保重新加载服务后,通过sshd -T检查参数实际状态,因为/etc/ssh/sshd_config.d/目录下的分片配置文件可能改写了主配置。

另一种可能登录不上的原因是PAM模块限制,部分发行版的SSH依赖pam_unix.so完成密码验证,若/etc/pam.d/sshd被修改过,密码认证会异常,将sshd_config中的SELinux影响也纳入考虑,CentOS等系统上需要确认SELinux策略没有阻止sshd读取相关文件,如需调整,考虑:

setsebool -P sshd_use_pty=1

该命令能修复部分因SELinux导致的SSH密钥认证异常状况,若修改后SSH服务启动失败,可通过sshd -t检查配置语法,多数错误都能在输出信息中定位。

免密登录设置后的服务器安全配置建议

已经关闭了免密登录,顺手再加固一下其他安全设置效果更佳,业内专家指出,SSH安全配置遵循最小化原则时,服务器被攻破的概率会明显下降,除了禁用密钥认证,以下参数建议同步调整:

PermitRootLogin no
MaxAuthTries 3
LoginGraceTime 30
ClientAliveInterval 300
ClientAliveCountMax 0

分别表示禁止root直接登录、限制密码尝试次数为3次、限制登录超时时间为30秒、每5分钟保活检查一次连接、超时后立即断开连接,这些参数能有效压缩暴力破解的时间和空间。

结合防火墙白名单,限制仅允许办公网段IP访问SSH端口(默认22),是性价比最高的防护手段,对于同时运行Web服务的服务器,务必区分SSH服务和管理后台的访问来源,避免因业务端口暴露而连带SSH面临攻击,若采购了国内主流云服务商的服务器,还可借助其自带的主机安全组件,比如云安全中心的基线检查功能,自动检测SSH配置中是否存在“允许免密登录”等风险项,达到联动治理的效果。

云服务器SSH免密登录相关问题解答

问:云服务器由密钥对创建的,能在系统内直接关闭免密登录吗?

可以,但需要同时处理控制台和系统两层配置,先在系统内设置PubkeyAuthentication no并重启服务,再登录云控制台,进入实例详情页的解绑密钥对或重置密码操作,确保控制台侧的登录方式也变更为密码认证。

问:关闭免密登录后,原本配置的密钥自动部署功能是否还能用?

如果关闭了全局公钥认证,依赖SSH密钥的自动化部署工具会立即失效,比如Ansible、rsync-over-SSH或Git部署钩子,它们默认走密钥通道,为不影响自动化流程,建议保留一条专用的部署专用密钥白名单路径,同时保证日常运维使用密码登录,这需要利用Match User语法为指定账号单独开启公钥认证,搭配防火墙限制其来源IP,将免密范围控制在特订管理通道内。

问:如何查看服务器是否支持免密SSH登录?

执行sshd -T | grep pubkeyauthentication,观察到输出为pubkeyauthentication yes时,意味着该服务器开启了公钥认证能力,但能否免密登录还需确认目标用户的authorized_keys里是否有对应公钥,若输出为no,则服务端已不允许任何形式的密钥登录,综合检查/etc/ssh/sshd_config及/etc/ssh/sshd_config.d/目录下的碎片化配置,确认没有其他覆盖项,才能准确判定服务器的真实认证状态。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/789263.html

赞 (0)
上一篇 2026年11月8日 19:02
下一篇 2026年11月8日 19:06

相关推荐

  • 如何实现ASP.NET无刷新局部更新?异步提交数据AJAX与UpdatePanel应用

    ASP.NET无刷新技术:构建高效流畅的现代Web应用ASP.NET无刷新技术的核心在于利用异步通信机制(如AJAX),实现网页数据的局部更新,避免整个页面重新加载,从而显著提升用户体验和应用程序性能,为何需要无刷新体验?传统Web表单的痛点传统的ASP.NET Web Forms开发依赖于服务器回发(Post……

    2026年2月11日
    12400
  • 苹果电脑怎么绑定QQ邮箱服务器地址,设置方法是什么

    在Mac“邮件”App里添加“其他邮件账户”,账户类型选IMAP,收件服务器填imap.qq.com、端口993并启用SSL/TLS,发件服务器填smtp.qq.com、端口465并启用SSL/TLS,用户名写完整QQ邮箱地址,密码填QQ邮箱生成的16位授权码,不要填QQ登录密码, 这套参数填对,苹果电脑绑定Q……

    程序编程 2026年10月22日
    800
  • 服务器客户端写程序怎么学?,需要哪些技术?

    服务器客户端写程序,核心在于理解网络通信协议并选择合适的开发框架,这样就能高效构建稳定可靠的应用,无论是简单的远程控制工具还是复杂的企业级分布式系统,都离不开客户端与服务器之间的数据交换机制,掌握这个基础,后续开发就能事半功倍,服务器客户端编程,从理解通信模型开始在动手写代码之前,先搞清楚通信模型比什么都重要……

    2026年7月22日
    1400
  • 在Excel中的phonetic函数到底怎么用,都有哪些具体用途呢

    在Excel中处理汉字拼音主要依靠PHONETIC函数,但该函数仅支持从“拼音指南”中提取读音,无法直接转换无注音文本,真正实现汉字转拼音需要借助VBA代码或第三方插件,常用方案包括使用“易用宝”插件、自定义函数或在线工具,Excel拼音函数怎么用?PHONETIC函数详解很多用户搜索“Excel拼音函数怎么用……

    2026年7月21日
    2300
  • UG许可证服务器错误怎么解决,打开ug报错如何处理?

    打开UG出现许可证服务器错误,最直接的解决思路是:先看许可证服务是否启动,再查端口是否被占用,最后检查环境变量和证书文件是否完整, 90%以上的这类报错,都出在这四个环节上,下面按故障发生的频率和排查成本,从软件问题到系统问题逐一拆解,照着做基本都能解决,许可证服务器错误的常见错误代码代表什么在动手操作前,先花……

    2026年9月18日
    400
  • 我的世界op怎么用指令创号?,服务器op指令有哪些?

    在服务器后台或游戏内输入 /player <玩家ID> password <密码> 即可完成创号(注册),具体命令取决于你的服务端插件类型,目前主流以 CatSeed 和 EssentialsX 为主,很多人第一次开我的世界服务器,或者刚接手一个旧服,最懵的不是怎么装插件,而是拿到 OP……

    2026年10月11日
    100
  • 安装win10 无法启动服务器失败怎么办啊

    安装Win10提示“无法启动服务器失败”,核心原因是Windows Update相关服务被禁用或系统文件损坏,直接重置SoftwareDistribution和catroot2目录可解决绝大多数情况,这个问题在近几年的老电脑升级场景里非常常见,尤其是在单位办公网或校园网这类有域控策略的环境下,系统服务被策略锁死……

    2026年8月20日
    400
  • 美国 Pacific Rack VPS 测评,10 美元/年方案值得买吗,美国 VPS 测评

    美国 Pacificrack VPS 10 美元/年方案实测结论:该方案仅适合对网络延迟不敏感、预算极度受限的静态网页或轻量级测试环境,在 2026 年中美网络环境下,其 CN2 GIA 线路已不可用,跨境访问速度存在显著瓶颈,不建议作为生产环境核心业务的首选,2026 年 Pacificrack 定价策略与方……

    2026年5月10日
    5100
  • 苹果5为什么显示4g网络连接服务器,怎么解决?

    如果您的iPhone 5显示4G网络但无法连接服务器,首先检查蜂窝移动网络中的4G开关是否开启,然后尝试还原网络设置或更新运营商版本,多数情况下,通过重置网络设置或手动选择运营商即可解决,苹果5显示4g但无法连接服务器怎么办当iPhone 5屏幕左上角出现4G图标,却无法正常打开网页或连接服务器,问题通常出在网……

    2026年8月18日
    900
  • web服务器网站端口号改错怎么办,如何恢复默认设置?

    web服务器网站端口号怎么改?核心就三步:修改监听配置、放行新端口防火墙规则、重启服务验证生效,绝大多数改端口失败都发生在第二步,后面会重点拆解,改端口前先想清楚:你到底是哪类需求?改端口这件事,来访用户大致分两种,第一种是建站初期主动改,比如在同一台服务器上跑多个站点,不想都用80端口;或者备案审查要求关闭某……

    2026年10月17日
    400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注