如何只允许某些用户使用 ssh?

如何只允许某些用户使用 ssh?

在所有人员都有 ssh 连接的系统中, AllowUsers $USER 在 /etc/ssh/sshd_config 中使用是否安全?

我希望所有人员都具有 ssh 访问权限,但我不希望系统帐户具有 ssh 权限。我还想进行设置,而不必永久将用户添加到配置文件中。有没有我可以使用的变量?如果我假设用户名==用户主页,那么也许AllowUsersls /home/ 会起作用。我不确定我是否应该这样做。

答案1

反其道而行之。在 sshd_config 中使用 DenyUsers 来阻止列表中的用户登录。

您要拒绝登录功能的用户列表通常是超级用户和任何以 /bin/nologin 作为 shell 的用户。此外,检查 /etc/passwd 文件并确定作为程序包的一部分安装的任何用户。在 CentOS 7 上,这些用户的 uid 通常小于 1000。

这是我在 CentOS 7 上的:

DenyUsers root bin 守护程序 adm lp 同步关闭停止邮件操作员游戏 ftp 无人 dbus polkitd tss colord usbmuxd rpc rtkit qemu radvd ntp chrony abrt avahi-autoipd 未绑定 rpcuser nfsnobody libstoragemgmt saslauth 脉冲 gdm gnome-initial-setup avahi pcp postfix sshd oprofile tcpdump lightdm开放VPN纳米-开放连接

我通过运行一个名为“denyusers.awk”的 awk 脚本获得了该列表:

./denyusers.awk /etc/passwd

这是我的“denyusers.awk”脚本的来源。


#!/bin/awk -f
BEGIN {
    FS=":";
    printf("%s","DenyUser root");
}

{
    username=$1;
    uid=$3
    shell=$7;
    if ((uid<1000) || ( shell == "/sbin/nologin" )) {
       printf(" %s", username);
    }
}

END {
    print "";
}

相关内容