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

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

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

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

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

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

johns-mbp:~ john$ ssh [email protected]
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.
[email protected]'s password:  

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

答案1

来自手册页

允许Root登录

指定 root 是否可以使用以下方式登录远程控制(1). 参数必须是“yes”、“without-password”、“forced-commands-only”或“no”。默认为“yes”。

如果将此选项设置为prohibit-password(或其弃用的别名without-password)、root 的密码和键盘交互身份验证均被禁用。

如果将此选项设置为“forced-commands-only”,则将允许使用公钥身份验证的 root 登录,但前提是command已指定该选项(即使通常不允许 root 登录,这对于进行远程备份也很有用)。所有其他身份验证方法对 root 都禁用。

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

因此,prohibit-password仅允许使用公钥认证进行 root 登录。这通常用于 shell 脚本和自动化任务。

答案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

答案3

在较新版本的 sshd(OpenSSH 7.0 及以上版本,发布于 2015-08-11)中“ without-password”已更改为“ prohibit-password”。

prohibit-password两个版本都可以,如果可以的话最好使用“ ”:它可以更好地解释自己。

来源

  • sshd_config(5): PermitRootLogin 现在接受“prohibit-password”参数作为“without-password”的不太明确的同义词。

答案4

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

这是一个例子齐奏进行同步。

相关内容