默认情况下,允许哪些用户通过SSH登录?


18
  1. 当我设置Debian 6时,我想知道,除了root用户以外,我知道哪个用户的密码可以通过SSH登录到我的系统?

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

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

Answers:


20

Paradeepchhetri并不完全正确。

Debian的未修改sshd_config内容如下:

PubkeyAuthentication yes
PermitEmptyPasswords no
UsePAM yes

因此,通过ssh登录仅适用于中具有填充密码字段/etc/shadow或中具有ssh密钥的用户~/.ssh/authorized_keys。请注意,默认值PubkeyAuthentication就是yesPermitEmptyPasswordsno,所以即使你删除它们的行为将是相同的。

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

pam_accessAllowUsers并且AllowGroupsin sshd_config可以用于进行更好的控制(如果需要)。在Debian中,强烈建议您这样做UsePAM


10

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

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

如sshd_config的手册页所述。

AllowUsers

此关键字后可以跟一个用
空格分隔的用户名模式列表。如果指定,则仅对与模式之一匹配的用户名允许登录。只有用户名有效;无法
识别数字用户ID 。默认情况下,所有用户都可以登录。如果图案采用以下形式USER@HOST,然后USERHOST单独检查,限制登录到从特定主机的特定用户。的允许/拒绝的指令在下列顺序处理:DenyUsersAllowUsersDenyGroup,和最后AllowGroups


我添加了“在Debian上”,以防有人出现并阅读问题标题和答案而不阅读问题本身。问题标题的一般答案是:“取决于所发送sshd_config文件的内容。” 例如,某些操作系统附带不允许通过SSH进行root登录。
沃伦·杨

谢谢,但是显然,默认情况下,只有root用户才能登录,因为他是/ etc / shadow中唯一一个带有密码的用户。
JohnnyFromBF 2012年

7

默认情况下,SSH server甚至没有安装。您必须先安装openssh-server软件包,然后任何人都可以使用SSH进行登录。

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

  • SSH认证
  • PAM帐户支票

SSH身份验证意味着用户必须输入有效的密码,/etc/shadow或者用户具有有效的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

1
请注意,空密码有效密码,但是正如bahamat所指出的那样,默认的SSH配置(和默认的Debian配置)不允许空密码帐户的SSH登录。
Totor
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.