IBM Cloud Docs
为用户授予 SSH 访问权

为用户授予 SSH 访问权

使用以下步骤向一个或多个用户授予 SSH 访问权。 这些步骤演示如何配置此文件。

  1. 找到以下 OpenSSH 文件:

    /etc/ssh/sshd_config
    
  2. 生成此文件的备份,这样就可以在需要时进行还原。

    cp /etc/ssh/sshd_config{,.'date +%s'}
    
  3. 使用 OpenSSH 关键字来编辑文件。

OpenSSH 关键字

请参阅以下有关 OpenSSH 关键字的信息。

AllowGroups

在此关键字之后,包含一个组名模式列表。 模式之间以空格分隔。 如果指定登录,那么仅允许主组或补充组列表与其中某个模式相匹配的用户登录。 您可以在模式中使用 "*" and "?" 作为通配符。 只有组名有效;无法识别数字组标识。 缺省情况下,允许所有组登录

AllowUsers

在此关键字之后,包含用户名模式列表。 模式之间以空格分隔。 如果指定 Login,那么仅允许用户名与其中一个模式匹配。 您可以在模式中使用 "*" and "?" 作为通配符。 只有用户名有效; 无法识别数字用户标识。 缺省情况下,允许所有用户登录。 如果模式的形式是 USER@HOST,那么将分别检查 USER 和 HOST,限制仅允许来自特定主机的特定用户登录。

DenyGroups

在此关键字之后,包含一个组名模式列表。 模式之间以空格分隔。 如果指定登录,那么不允许主组或补充组列表与其中某个模式相匹配的用户登录。 您可以使用 "*" and "?" 作为模式中的通配符。 只有组名有效;无法识别数字组标识。 缺省情况下,允许所有组登录

DenyUsers

在此关键字之后,包含用户名模式列表。 模式之间以空格分隔。 如果指定 Login,那么将不允许用户名与其中一个模式匹配。 您可以在模式中使用"*" and "?" 作为通配符。 只有用户名有效; 无法识别数字用户标识。 缺省情况下,允许所有用户登录。 如果模式的形式是 USER@HOST,那么将分别检查 USER 和 HOST,限制仅允许来自特定主机的特定用户登录。

示例

在以下示例中,仅允许两个特定用户 adminuser1 登录到服务器。

您可以使用类似的方法,通过使用关键字 DenyGroupsDenyUsers来拒绝组。

AllowUsers admin user1

为了准备将来扩展用户,您可以在服务器上创建一个可以登录到服务器的组。 您可以根据需要来添加单个用户(将 username 替换为实际用户):

  1. 在 shell 中,添加用户组,如 sshusers:

    groupadd –r sshusers
    
  2. 在 shell 中,将用户添加到组中:

    usermod –a –G sshusers admin
    
    usermod -a -G sshusers user1
    
  3. 在 sshd_config 文件中,为 sshusers 组授予访问权:

    AllowGroups sshusers
    
  4. 验证 sshd 能否无中断地读取新配置:

    /usr/sbin/sshd –t
    
    echo $?
    

    如果在 echo $? 命令后获得 0 ,那么新配置是正确的。

    也可能会收到类似以下示例的错误消息:

    sshd_config: line 112: Bad configuration option: allowuser

    sshd_config: terminating, 1 bad configuration options

  5. 在修正了所有错误并确认配置正确之后,重新启动 sshd。 以下命令是与 sysv 兼容的系统中的示例命令:

    /etc/init.d/sshd restart
    

确保创建新 SSH 会话时不会断开现有会话的连接。 验证是否能以您添加的用户身份执行任意操作。