抱歉,这是一个新手常问的问题。我以 root 身份运行 Debian 机器:
$whoami
root
如果我小心地更改密码(通过 VNC),它似乎有效:
debian:/# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
如果我尝试通过 ssh 登陆,仔细输入我刚刚设置的密码,我会收到“权限被拒绝”的提示:
:~ ap257$ ssh [email protected]
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied, please try again.
可能出了什么问题?
- - 更新 - - - -
已解决,请参阅下面的答案(我明天才能接受)。非常感谢你对此为何有效的想法!
答案1
最有可能的是,“root”帐户不允许通过 SSH 登录。
找到配置文件,通常存储在
/etc/ssh/sshd_config
查找以下行:
PermitRootLogin No
改为说
PermitRootLogin Yes
确保在进行更改后重新启动 SSH 守护程序!
service sshd restart
答案2
创建新用户和useradd
,然后设置密码使用passwd [user].
ie
useradd johndoe
passwd johndoe
然后使用 johndoe 进行 SSH,然后使用切换用户命令su -
以获取 root 权限。
注意破折号。这对于设置您想要的环境非常重要。如果没有破折号,我相信您最终会进入 root 下的提示符,但必须使用绝对路径。通常语法是 su [user],但如果省略,则默认为 root。
理想情况下,您还会使用 Sudo,但上述方法比简单地在 root 下进行 SSH 连接更合适。正如其他答案中提到的,您的 sshd 配置可能不允许 root 登录。
root 登录的原因是不允许是因为远程 root 访问可以风险较高比所需的安全级别要高。使用上述方法,您必须破解两层才能获得 root 访问权限,而不是直接“敲开前门”。
您还可以查看 /var/log/secure 来了解密码被拒绝的原因。
答案3
我曾经遇到过这个问题。这是因为 sshd 配置不允许 root 登录。
确保在配置文件中将其PermitRootLogin
设置为,尽管我不确定在 Debian 下是否可以找到它yes
/etc/ssh/sshd_config
答案4
感谢大家的所有建议。我最终偶然解决了这个问题,方法是输入
$ passwd root
并像以前一样做所有事情。我不知道为什么当
$ whoami
root
$ passwd
没有。有人能解释一下吗?