我想在Ubuntu 14.04上启用ssh根访问权限。编辑/etc/ssh_config(PermitRootLogin yes)没有任何影响。

#1 楼

对于Ubuntu 14.04 Server而言,仅添加root密码是不够的。

还需要编辑/etc/ssh/sshd_config,并注释掉以下行:

PermitRootLogin without-password


就在它下面,添加以下行:

PermitRootLogin yes


然后重新启动SSH:

service ssh reload



对于Ubuntu 16.04.1 LTS(GNU / Linux 4.4.0-59-通用x86_64)PermitRootLogin without-password已替换为PermitRootLogin prohibit-password

评论


通过ssh执行此操作时,服务ssh重新加载很有用。

– TorstenRömer
14-10-14在12:48

我在VM上运行Ubuntu,但是直到重新启动VM一次,我才知道这些更改没有起作用(除了上述步骤之外,我可能还需要停止/启动网络服务,但是我不确定)。

–VSB
2014年12月6日18:54



我必须做PermitRootLogin yes,因为我有简单的密码

– JorgeeFG
15年2月10日在18:39

如果在ssh或scp告诉您“权限被拒绝,请重试”时在另一个窗口中执行此操作,请退出并重试该ssh(或scp),而不仅仅是重新输入密码。

– Camille Goudeseune
2015年2月10日在21:48

同样不要忘记检查sshd_config中是否提到了root:AllowUsers root

– Jan
16 Dec 13 '23:31

#2 楼

您需要为根帐户设置一个密码,然后该密码才能起作用。

sudo passwd


输入相同的密码两次。

密码。修改/ etc / ssh / sshd_config后,不要忘记重新加载openssh服务器。

sudo service ssh reload


评论


这将起作用;但对于OP:请三思而后行。如果仍然这样做,并且您的PC处于Internet上,请考虑将fail2ban添加到系统中。 (此注释与通过ssh启用root登录有关;是否具有root用户本地密码只是一个问题。)

–罗马诺
2014年5月19日14:08



#3 楼

使用Ubuntu 14.04 Server。
设置密码
sudo passwd
更改/ etc / ssh / sshd_config
更改PermitRootLogin
PermitRootLogin yes
您可能还需要检查密码认证的值。如果设置为no,则设置为yes。
然后重新启动SSH:
PasswordAuthentication yes

评论


这是唯一完整的答案。其他答案缺少一部分。

– Wisbucky
17年9月26日在18:00

除了我的没有这条线。添加它不能使其正常工作。

– SDsolar
18 Mar 6 '18 at 0:18

天哪,是的!谢谢! PasswordAuthentication是缺少的链接

– mpen
18年6月19日在6:04

我清除了两个系统(Kali Linux和Ubuntu 18)上的openssh-service和openssh-client,重新安装了它们,应用了此答案,一切都运行良好。

–mk1024
18-09-8在2:34



在我的sshd_config中,由于它具有“ UsePam yes”和一行“ DenyGroups root”,除了上述所有操作外,我还需要删除DenyGroups的“ root”以使其正常工作。

–闪烁的灯光
19-2-14在7:43



#4 楼

对于14.04,您必须在/ etc / ssh / sshd_config中的行下面注释

#StrictModes yes


评论


与其禁用文件模式检查,不如确保/root/.ssh及其中的文件不是root用户,其他任何用户都无法读取。

– Adaephon
2014年8月3日在18:59

#5 楼

对我来说,这些步骤都不起作用,我什至尝试了一些我永远不会尝试的东西,然后是玩具vm:PermitRootLogin without-password

对我唯一有效的是禁用PAM模块为此:

UsePAM no


此选项通常在文件的最后。老实说,我不知道这样做的真正弊端,但是由于您不应该允许root用户在线登录,因此我认为对于私有dev-vm来说还可以。

始终设置强密码。不,这也不例外。不仅是这次...

评论


没有密码的PermitRootLogin并不意味着root用户无需身份验证即可登录。这意味着不允许root用户使用密码登录。相反,root用户必须使用更安全的RSA密钥登录。

– Craig
15年5月8日在23:20



@Craig我要指出的问题是,不是root用户就需要使用RSA SSH密钥。问题在于root用户是每个敲响SSH服务器大门的用户,都知道存在。我认为这不是一件好事。但是请允许通过SSH进行root登录,但是正如您所说的,至少要确保它使用密钥来登录!

– Kjellski
2015年5月9日16:13

您说过,除了玩具虚拟机之外,您都不会尝试不带密码的PermitRootLogin。这就是您用来禁用root密码验证的方法,因此root可以登录的唯一方法是使用RSA密钥。您没有说明您使用RSA密钥尝试过该选项。如果您尝试不带键的该选项,则它不可能成功。如果您使用不带密码的PermitRootLogin,则根本无法使用密码身份验证来登录,而不要使用强密码,不可以使用空白密码或完全不登录。

– Craig
2015年5月10日,2:30