我刚刚在服务器上安装了Ubuntu 14.04,当我在sshd_config文件中遇到此配置文件时,我正在设置所有配置文件:我以为有人可能没有密码就以root用户身份登录我的服务器。

我尝试通过root用户身份以root用户身份连接到我的服务器: >
我输入了一个空白密码,但没有让我进入,这很轻松。所以我的问题是:没有密码是什么意思,为什么在Ubuntu 14.04中这是默认设置?

#1 楼

在联机帮助页上:


PermitRootLogin

指定root是否可以使用ssh(1)登录。参数
必须为“是”,“无密码”,“仅强制命令”或
“否”。默认值为“是”。

如果此选项设置为“无密码”,则禁用root用户的密码


如果此选项设置为“仅强制命令”,则使用
将允许公用密钥身份验证,但前提是已指定
command选项(即使通常不允许root登录,这对于进行
远程备份也可能有用)。

禁用了其他身份验证方法。

如果此选项设置为“ no”,则不允许root用户登录。仅使用公共密钥身份验证登录。这通常与Shell脚本和自动化任务一起使用。

评论


不允许使用密码进行“ root登录”被认为比允许使用的密码更安全。也就是说,除非根本没有其他方法(sudo等)起作用,否则您根本不应登录到root用户。

– david6
14年4月19日在21:46

如您所见,虽然手册页指示默认值为“是”,但Ubuntu已将默认设置为“无密码”。

–铁轮
2014年6月9日在21:37

那么,无密码意味着除密码之外的所有方法都可以使用?听起来确实像是“无需密码即可登录”。

–Gauthier
2014年9月12日上午9:09

“应该通过具有唯一且可识别的用户ID的本地登录,然后在本地进行身份验证后通过su命令,来促进所有root访问。直接root登录是非常不安全的,并且几乎没有提供审计追踪的责任。” -CIS IBM AIX指南

–多米尼克·安塔尔(Dominik Antal)
2014年9月30日15:15

PermitRootLogin现在接受“ prohibit-password”作为“ without-password”的明确同义词。

– Endolith
16 Sep 16'0:57



#2 楼

实际上,如果您使用PAM身份验证,则此设置几乎不起作用。在sshd_config配置文件的底部,您将找到:

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.


Ubuntu的默认设置是使用PAM身份验证:

UsePAM yes


评论


以我的简短经验,即使将此设置为no也不会使无密码的PermitRootLogin真正起作用,无论如何! :(

– Cregox
2015年12月2日,下午2:34

@cregox(如果您使用的是典型的桌面系统),则需要执行ssh-copy-id -i〜/ .ssh / id_rsa.pub user @ ip,它会创建〜/ .ssh / authorized_keys,如果您不能以root身份登录,您不会在/root/.ssh/中创建此文件,但是如果您在该目录中复制文件,则可以使用

– Rutrus
16年5月6日在1:46

#3 楼

请注意,通过root登录有合理的理由(但要使用加密密钥而不要使用密码)。一个典型的示例是远程同步两台服务器(以使其中一台用作故障转移)。由于结构必须相同,因此通常需要root密码。

下面是使用统一进行同步的示例。

评论


是否也不会以普通用户身份登录(最有可能使用加密密钥)并将其属于sudo组,因此您也可以这样做吗?

– Nico du Toit
16-3-31在14:19



据我测试过(那是在2015年!),答案是“不”-确实没有用。这可能是为什么统一最近不合时宜的一个很好的理由(这很遗憾,因为它继续得到发展),

– Gwyneth Llewelyn
20-05-31在22:20

#4 楼

在较新版本的sshd(于2015-08-11发行的OpenSSH 7.0及更高版本)中,“ without-password”已更改为“ prohibit-password”。两个版本均适用,如果您可以:它可以更好地说明自己。

来源:



sshd_config(5):PermitRootLogin现在接受“禁止密码”作为“无密码”的同义词。