默认允许哪些用户通过SSH登录?

默认允许哪些用户通过SSH登录?
  1. 当我设置 Debian 6 时,我想知道除了我知道密码的 root 之外,哪些用户可以通过 SSH 登录我的系统?

  2. 当我安装 Apache 2 时,会创建一个名为 www-data 的用户。该用户是否有权通过 SSH 登录我的系统?但如果 www-data 有一些默认密码,每个人都可以登录,这对我来说似乎不太可能。

  3. 在哪里可以找到允许哪些用户通过 SSH 登录我的系统的列表?在 ssh 配置文件中找不到任何内容。

答案1

Paradeepchhetri 并不完全正确。

Debian 未修改的sshd_config有以下内容:

PubkeyAuthentication yes
PermitEmptyPasswords no
UsePAM yes

因此,通过 ssh 登录仅适用于在 中填充了密码字段/etc/shadow或在 中具有 ssh 密钥的用户~/.ssh/authorized_keys。请注意, PubkeyAuthenticationisyes和 for PermitEmptyPasswordsis 的默认值no,因此即使删除它们,行为也将是相同的。

在问题示例中,www-data默认情况下将不允许登录,因为 Debian 的安装程序既不分配密码也不为www-data.

pam_access,如果需要,可以使用inAllowUsers进行更精细的控制。在 Debian 中,强烈鼓励.AllowGroupssshd_configUsePAM

答案2

默认情况下,Debian 上的所有用户都允许登录。

您可以通过允许某些用户可以通过编辑/etc/ssh/sshd_config文件登录来更改它。

正如 sshd_config 的手册页中提到的。

AllowUsers

该关键字后面可以跟一个用户名模式列表,以
空格分隔。如果指定,则仅允许与其中一种模式匹配的用户名登录。仅用户名有效;无法
识别数字用户 ID。默认情况下,允许所有用户登录。如果该模式采用USER@HOSTthen 的形式USER,则HOST单独检查,从而限制来自特定主机的特定用户的登录。允许/拒绝指令按以下顺序处理:DenyUsersAllowUsersDenyGroup和 最后AllowGroups

答案3

默认情况下,SSH server甚至没有安装。您必须先安装该openssh-server软件包,然后任何人才能通过 SSH 登录。

之后,任何用户都必须通过两项检查:

  • SSH认证
  • PAM 帐户检查

SSH 身份验证意味着用户必须在 中具有有效的密码,/etc/shadow或者在目标用户的 .sh 文件中具有具有正确权限的有效 SSH 公钥~/.ssh/authorized_keys

手册页中进一步描述了有效密码crypt(3),但基本上,如果用户的第二个字段/etc/shadow以 开头$NUMBER$,则它可能是有效的,如果是*!,则它是无效的。

PAM 帐户检查基本上意味着该帐户没有过期。您可以使用 来检查chage -l USERNAME

据我所知,回答你的问题:

  1. 只有 root 和您在安装向导期间创建的帐户才能登录新系统
  2. 否,因为www-data有哈希密码*并且没有~www-data/.ssh/authorized_keys文件
  3. 没有单一的列表,因为有多个要求,但为了获得一个想法,您可以尝试运行grep -v '^[^:]*:[!*]:' /etc/shadow

相关内容