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 。我做了与上面相同的步骤,但它不起作用。machineB
useradd golden
golden
machineB
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
密钥从文件复制到文件。当我尝试 ssh 时,它给了我:/home/golden/.ssh/id_rsa.pub
machineA
machineB
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