如何在Ubuntu 14.04上启用ssh root访问

我想在Ubuntu 14.04上启用ssh的root访问权限。编辑/etc/ssh_config文件(PermitRootLogin yes)没有产生任何影响。
5个回答

仅仅为root添加密码对于Ubuntu 14.04服务器来说是不够的。
你还需要编辑/etc/ssh/sshd_config文件,并注释掉以下行:
PermitRootLogin without-password

在其下方,添加以下行:

只需在其下方添加以下行:

PermitRootLogin yes

然后重新启动SSH:
service ssh reload

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

10使用ssh时,service ssh reload很有用。 - Torsten Römer
我在虚拟机上运行Ubuntu,但是直到我重新启动虚拟机后才发现这些更改没有生效(也许除了上述步骤之外,我还需要停止/启动网络服务,但我不确定)。 - VSB
2我必须执行PermitRootLogin yes,因为我之前使用的是明文密码。 - JorgeeFG
1如果在使用ssh或scp时出现“权限被拒绝,请重试”等提示信息,可以尝试在另一个窗口中退出并重新尝试ssh(或scp),而不仅仅是重新输入密码。 - Camille Goudeseune
如果我失去了这把钥匙,我是否能够重新获得对这个实例的访问权限?如果我在AWS EC2或Linode上托管我的服务,他们在丢失钥匙的情况下是否能够采取一些措施? - Shih-Min Lee
1дёЂж—¦дҢ дҢүз”Ёssh-copy-idж€–е…¶д»–ж–№жі•е¤Қ制дғ†дҢ зљ„sshеҮ†й’ӨпәЊдҢ еЏҮд»Ө取消注释PermitRootLogin without-password并注释жҺ‰дҢ зљ„ж–°PermitRootLogin yesгЂ‚ - pd12
1同时不要忘记检查sshd_config文件中是否提到了root:AllowUsers root - Jan
我的服务器上没有AllowUsersPermitRootLogin选项。所以我添加了这两个选项。然后在服务器上执行了service ssh reloadservice ssh restart命令。但是当我在工作站上执行ssh root@servername时,它仍然提示我输入密码,然后显示"Permission Denied"(权限被拒绝)。 - SDsolar
如果你想使用密码登录SSH,请将行PasswordAuthentication no注释或删除。 - bronze man

你需要为root账户设置密码,然后它将正常工作。
sudo passwd

输入相同的密码两次。

P.S. 修改 /etc/ssh/sshd_config 后,请不要忘记重新加载 openssh 服务器。

sudo service ssh reload

2这个方法是可行的,但是对于楼主来说,请三思而后行。如果你还是决定这样做,并且你的电脑连接到了互联网上,请考虑在系统中添加fail2ban。(这条评论与通过ssh启用root登录有关;是否为root设置本地密码只是个人喜好的问题)。 - Rmano

使用Ubuntu 14.04服务器。

设置密码

sudo passwd

/etc/ssh/sshd_config中的更改

更改PermitRootLogin

PermitRootLogin yes

您还可能需要检查PasswordAuthentication的值。如果设置为no,则将其设置为yes

PasswordAuthentication yes

然后重新启动SSH:

service ssh restart


6这是唯一完整的答案。其他答案缺少了一部分。 - wisbucky
除了我的没有这一行。添加它并不能使其工作。 - SDsolar
哦,太好了!谢谢!PasswordAuthentication是缺失的链接。 - mpen
我在两个系统(Kali Linux和Ubuntu 18)上卸载了openssh-service和openssh-client,然后重新安装它们,并应用了这个答案,一切都完美地运行了。 - mk1024
在我的sshd_config文件中,由于设置了"UsePam yes",以及一行"DenyGroups root",除了上述所有操作之外,我还需要将"root"从DenyGroups中删除才能使其正常工作。 - Flickerlight

对于14.04版本,您需要在/etc/ssh/sshd_config文件中注释掉下面的一行。
#StrictModes yes

3与其禁用文件模式检查,不如确保/root/.ssh及其中的文件仅对root用户可读。 - Adaephon

对我来说,这些步骤都没有起作用,我甚至尝试了一些我从未为其他事情尝试过的东西,比如一个玩具虚拟机:PermitRootLogin without-password 对我来说唯一有效的方法是禁用PAM模块:
UsePAM no

这个选项通常在文件的最末尾。老实说,我不知道这个的真正缺点,但是既然你不应该允许在线的root登录,我猜对于一个私人开发虚拟机来说,这还是可以接受的。
无论如何,一定要设置一个强密码,总是如此。不是例外情况,甚至 这一次也不例外...

6PermitRootLogin without-password 不意味着root用户可以无需身份验证登录。它意味着root用户不允许使用密码登录。相反,root用户必须使用RSA密钥进行登录,这样更安全。 - Craig Tullis
@Craig,我所指的问题不是root需要使用RSA SSH密钥。问题在于root是一个每个敲门进入你的SSH服务器的人都知道存在的用户。在我看来,这并不是一件好事。但是如果你愿意,可以让root通过SSH登录,但至少确保使用密钥进行登录! - Kjellski
4你说过你只会在玩具虚拟机上尝试PermitRootLogin without-password。这是用来禁用root用户的密码验证,只允许使用RSA密钥进行登录。你并没有说明你是否尝试了使用RSA密钥的选项。如果你尝试了不带密钥的选项,那么它是不可能成功的。如果你使用了PermitRootLogin without-password,那么你将无法使用密码验证登录,无论是强密码还是空密码,都无法登录。 - Craig Tullis