通过PAM帐户配置拒绝特定用户的访问


10

我正在尝试为已经退出的用户设置从machineA到的无密码登录。这是我生成身份验证密钥的工作:machineBdavid

david@machineA:~$ ssh-keygen -t rsa
........

david@machineB:~$ ssh-keygen -t rsa
........

之后,我将的id_rsa.pub (/home/david/.ssh/id_rsa.pub)密钥复制machineAmachineB authorized_keys文件(/home/david/.ssh/authorized_keys)密钥中。

然后,我返回到machineA登录屏幕,并运行以下命令,它运行正常,没有任何问题。因此,我能够以machineB大卫用户身份登录而无需输入任何密码。

david@machineA:~$ ssh david@machineB

题:

现在,我创建了一个新的用户machineA,并machineB只运行此命令两者useradd golden。现在,我想将此golden用户的无密码密码转换为machineBfrom machineA。我做了与上述完全相同的步骤,但是没有用。

david@machineA:~$ sudo su - golden
golden@machineA:~$ ssh-keygen -t rsa
........

david@machineB:~$ sudo su - golden
golden@machineB:~$ ssh-keygen -t rsa
........

然后,我将黄金用户的id_rsa.pub密钥/home/golden/.ssh/id_rsa.pub从复制machineAmachineB authorized_keys文件/home/golden/.ssh/authorized_keys。当我尝试ssh时,它给了我:

golden@machineA:~$ ssh golden@machineB
Connection closed by 23.14.23.10

怎么了?它不适用于我通过此命令手动创建的黄金用户useradd。我正在运行Ubuntu 14.04。我需要为此创建的手动用户启用任何设置吗?

machineB auth.log文件中,下面是我从machineA运行此命令ssh -vvv golden@machineB以登录时看到的内容

Jan  3 17:56:59 machineB sshd[25664]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Jan  3 17:56:59 machineB sshd[25664]: pam_access(sshd:account): access denied for user `golden' from `machineA'
Jan  3 17:56:59 machineB sshd[25664]: pam_sss(sshd:account): Access denied for user golden: 10 (User not known to the underlying authentication module)
Jan  3 17:56:59 machineB sshd[25664]: fatal: Access denied for user golden by PAM account configuration [preauth]

我有什么想念的吗?下面是我的目录结构:

golden@machineA:~$ pwd
/home/golden
golden@machineA:~$ ls -lrtha
total 60K
-rw------- 1 golden golden  675 Nov 22 12:26 .profile
-rw------- 1 golden golden 3.6K Nov 22 12:26 .bashrc
-rw------- 1 golden golden  220 Nov 22 12:26 .bash_logout
drwxrwxr-x 2 golden golden 4.0K Nov 22 12:26 .parallel
drwxr-xr-x 2 golden golden 4.0K Nov 22 12:34 .vim
drwxr-xr-x 7 root     root     4.0K Dec 22 11:56 ..
-rw------- 1 golden golden  17K Jan  5 12:51 .viminfo
drwx------ 2 golden golden 4.0K Jan  5 12:51 .ssh
drwx------ 5 golden golden 4.0K Jan  5 12:51 .
-rw------- 1 golden golden 5.0K Jan  5 13:14 .bash_history


golden@machineB:~$ pwd
/home/golden
golden@machineB:~$ ls -lrtha
total 56K
-rw------- 1 golden golden  675 Dec 22 15:10 .profile
-rw------- 1 golden golden 3.6K Dec 22 15:10 .bashrc
-rw------- 1 golden golden  220 Dec 22 15:10 .bash_logout
drwxr-xr-x 7 root     root     4.0K Jan  4 16:43 ..
drwx------ 2 golden golden 4.0K Jan  5 12:51 .ssh
-rw------- 1 golden golden 9.9K Jan  5 12:59 .viminfo
drwx------ 6 golden golden 4.0K Jan  5 12:59 .
-rw------- 1 golden golden 4.6K Jan  5 13:10 .bash_history

更新:

machineA

cat /etc/passwd | grep golden
golden:x:1001:1001::/home/golden:/bin/bash

machineB

cat /etc/passwd | grep golden
golden:x:1001:1001::/home/golden:/bin/bash

您可以/etc/passwd为用户显示条目吗?
pbm

详细更新了问题。一件事是,我首先创建了没有任何密码的用户,然后在一段时间后为该黄金用户创建了密码。
user5447339

Pam_sss给用户未知。您需要验证系统上如何配置sssd。在某些情况下,sssd配置为缓存凭据,因此您可能必须使缓存/重新启动sssd无效
VenkatC

@VenkatC如何在系统中重新启动sssd?这些都是虚拟机,因此我不确定如何从其他团队那里获得此系统时对其进行配置。
user5447339

sysyemctl restart sssd-应该在基于systemd的服务器上工作
VenkatC

Answers:


13

问题出在PAM堆栈配置上。您的主机已配置好,pam_access并且默认配置不允许新用户访问外部/ SSH golden,即使您的密钥设置正确也是如此。

如下添加golden用户/etc/security/access.conf可解决此问题。

+:golden:ALL

要查看更多信息,请阅读man access.conf该文件的每个字段。查看示例部分以了解LOCAL,ALL等的顺序和含义


就我而言,我必须添加到具有访问权限access.conf的组中。
沃尔夫冈

8

我遇到了同样的问题,建议的选项均无效。但是我在其中一个论坛(https://ubuntuforums.org/showthread.php?t=1960510)中发现了一种“变通方法”,它可以很好地工作。

编辑/etc/ssh/sshd_config并设定

UsePAM no

虽然这可能不是真正的解决方案,但是由于我的机器肯定存在问题(昨天它工作正常!),但这至少可以正常工作。


-3

请在中添加以下内容/etc/security/access.conf

-:ALL:EXCEPT root

3
欢迎使用Unix.SE!您可以编辑答案以说明它比现有答案更好吗?
史蒂芬·基特

@StephenKitt我尝试了以上两个答案,但它们对我没有用。当我添加-:ALL:EXCEPT rootin时/etc/security/access.conf,它开始工作。
IRSHAD AHMED MOHAMMED

请尝试重新启动winbindd和oddjobd。希望它会有所帮助。谢谢,
IRSHAD AHMED MOHAMMED

1
@IRSHADAHMEDMOHAMMED您能解释一下它为什么起作用以及这还会带来其他与安全相关的后果吗?
库萨兰达
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.