You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Debian 12下SSH登录root需先通过sudo重置root密码的问题咨询

Debian 12下SSH登录root需先通过sudo重置root密码的问题咨询

兄弟,我来帮你捋捋这个问题哈!你说在Debian 12上通过SSH连进普通用户后,每次要登录root都得先跑sudo passwd root重置密码,之后才能用root@<服务器IP>在新终端登录,而且已经确认/etc/ssh/sshd_configPermitRootLoginyes对吧?

这事儿其实和Debian 12的默认配置直接相关,我给你拆解清楚:

核心原因

Debian 12默认情况下,root账户是处于锁定状态的(你可以看/etc/shadow文件里root行的密码字段,会是!或者*),这意味着没有有效密码能用来验证登录。你每次执行sudo passwd root,本质是给root设置了有效密码,同时自动解锁了账户,所以之后SSH才能用root密码登录。但你其实不需要每次都重置,只要一次性搞定就行。

解决步骤

  1. 先确认root账户状态
    执行这条命令查看root的密码锁定状态:

    sudo cat /etc/shadow | grep root
    

    如果输出里root行的第二个字段是!或者*,就说明账户确实被锁定了。

  2. 一次性设置并解锁root账户

    • 先给root设置一个安全的密码:
      sudo passwd root
      
      按照提示输入两次新密码即可。
    • 一般设置密码的操作会自动解锁账户,但保险起见可以再跑一遍解锁命令:
      sudo passwd -u root
      
  3. 检查SSH的其他关键配置
    除了PermitRootLogin yes,还要确保密码登录功能是开启的(如果你用密码登录root的话):
    编辑/etc/ssh/sshd_config,找到PasswordAuthentication项,设置为:

    PasswordAuthentication yes
    

    然后重启SSH服务让配置生效:

    sudo systemctl restart sshd
    

这样操作之后,你下次直接用root@<服务器IP>通过SSH登录就不需要再重复重置密码啦!

备注:内容来源于stack exchange,提问作者Waqas Saeed

火山引擎 最新活动