sshd_config文件中的“无密码”是什么意思?


118

我刚刚在服务器上安装了Ubuntu 14.04,当我在sshd_config文件中遇到此配置文件时,我正在设置所有配置文件:

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

这让我非常担心。我认为有人可能以root用户身份登录我的服务器而没有密码。

我尝试通过以下方式以root用户身份连接到服务器:

johns-mbp:~ john$ ssh root@192.168.1.48
The authenticity of host '192.168.1.48 (192.168.1.48)' can't be established.
RSA key fingerprint is 40:7e:28:f1:a8:36:28:da:eb:6f:d2:d0:3f:4b:4b:fe.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.48' (RSA) to the list of known hosts.
root@192.168.1.48's password:  

我输入了一个空白密码,但没有让我进入,这很轻松。所以我的问题是:没有密码意味着什么?为什么在Ubuntu 14.04中这是默认设置?

Answers:


142

联机帮助页

许可RootLogin

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

如果此选项设置为“ without-password”,则root用户的密码身份验证被禁用。

如果将此选项设置为“仅强制命令”,则将允许使用公共密钥身份验证的root用户登录,但仅command在指定了该 选项的情况下(即使通常不允许root用户登录,这对于进行远程备份也很有用) 。root禁用所有其他身份验证方法。

如果此选项设置为“ no”,则不允许root用户登录。

因此without-password,仅允许使用公共密钥身份验证的root用户登录。这通常与Shell脚本和自动化任务一起使用。


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

5
但是,如您所见,手册页指示默认值为“是”,而Ubuntu已将默认设置为“无密码”。
ironwheel 2014年

36
那么without-password意味着除密码外所有方法都允许吗?听起来确实像是“无需密码即可登录”。
Gauthier 2014年

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

22
PermitRootLogin now accepts an argument of 'prohibit-password' as a less-ambiguous synonym of 'without-password'.
endolith

16

实际上,如果您使用的是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

1
以我的简短经验,即使将其设置为某种方式no也不会PermitRootLogin without-password真正起作用!:(
cregox

1
@cregox(如果使用的是典型的台式机系统),您需要这样做,ssh-copy-id -i ~/.ssh/id_rsa.pub user@ip并且它会~/.ssh/authorized_keys记住如果您无法以root用户身份登录,则不会在/root/.ssh/中创建此文件,但是如果您复制那里的文件
Rutrus

3

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

这是一个使用统一进行同步的示例:https : //serverfault.com/questions/341985/remotely-use-root-over-ssh-for-unison


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

2

在较新版本的sshd中,“无密码”已更改为“禁止密码”。

两种版本都可以工作,如果可以的话,最好使用“禁止密码”:它可以更好地说明自身。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.