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

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

machineA我正在尝试为已经退出的machineB用户设置无密码登录。david这就是我生成身份验证密钥所做的操作:

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

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

之后我将id_rsa.pub (/home/david/.ssh/id_rsa.pub)密钥复制到文件密钥machineA中。machineB authorized_keys(/home/david/.ssh/authorized_keys)

然后我回到 machineA 登录屏幕并运行下面的命令,它工作正常,没有任何问题。所以我能够machineB以 david 用户身份登录,而无需询问任何密码。

david@machineA:~$ ssh david@machineB

问题:

现在,我仅通过运行此命令在machineA和上创建了一个新用户。现在我想从该用户无密码 ssh 进入from 。我做了与上面相同的步骤,但它不起作用。machineBuseradd goldengoldenmachineBmachineA

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密钥从文件复制到文件。当我尝试 ssh 时,它给了我:/home/golden/.ssh/id_rsa.pubmachineAmachineB authorized_keys/home/golden/.ssh/authorized_keys

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

答案1

问题在于 PAM 堆栈配置。您的主机配置为pam_access默认配置不允许新用户进行外部/SSH 访问golden,即使您的密钥设置正确。

按如下方式添加golden用户/etc/security/access.conf解决了该问题。

+:golden:ALL

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

答案2

我遇到了同样的问题,但所有建议的选项都不起作用。但我在一个论坛中发现(https://ubuntuforums.org/showthread.php?t=1960510)一个完美运行的“解决方法”。

编辑/etc/ssh/sshd_config并设置

UsePAM no

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

答案3

我遇到过同样的问题。 pam 访问会拒绝一台计算机上的特定用户,但不会拒绝其他计算机上的特定用户。最终,意识到我忘记更新/etc/shadow。

更新后,我的问题就解决了。

答案4

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

-:ALL:EXCEPT root

相关内容