ssh 无密码不适用于通过“useradd”命令新创建的用户

ssh 无密码不适用于通过“useradd”命令新创建的用户

machineA我正在尝试为machineB我的用户设置无密码登录,david该用户已经退出并且工作正常。这就是我所做的:

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

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

machineAmachineB用户生成身份验证密钥david。之后我将id_rsa.pub (/home/david/.ssh/id_rsa.pub)密钥复制到文件密钥machineA中。machineB authorized_keys(/home/david/.ssh/authorized_keys)

然后我回到 machineA 登录屏幕并运行以下命令,它无需输入密码即可工作:

david@machineA:~> ssh david@machineB

现在,我创建了一个没有任何密码的新用户machineA,并且machineB仅通过运行此命令来创建useradd golden。现在我想从该golden用户无密码 ssh 到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黄金用户的密钥从机器 A 复制到机器 Bauthorized_keys文件。当我尝试 ssh 时,它给了我:

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

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

更新:

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 ..
drwx------ 2 golden golden 4.0K Jan  3 15:00 .ssh
-rw------- 1 golden golden  17K Jan  3 15:04 .viminfo
drwx------ 5 golden golden 4.0K Jan  3 15:04 .
-rw------- 1 golden golden 4.2K Jan  3 16:32 .bash_history


golden@machineB:~$ pwd
/home/golden
golden@machineB:~$ ls -lrtha
total 52K
-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 6 root     root     4.0K Jan  3 14:26 ..
-rw------- 1 golden golden  11K Jan  3 15:21 .viminfo
drwx------ 2 golden golden 4.0K Jan  3 15:21 .ssh
drwx------ 6 golden golden 4.0K Jan  3 15:21 .
-rw------- 1 golden golden 2.9K Jan  3 15:27 .bash_history

authorized_keys 文件的路径位于 machineB 上

/home/golden/.ssh/authorized_keys

由于详细日志非常大,所以我将其粘贴到此处的要点上:

https://gist.github.com/TechGeeky/cf49052039313e4c654183bf9eafd97c

另一个更新:

在 machineBauth.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]

答案1

useradd是一个低级实用程序。adduser会是一个更好的选择。在这里,您的问题是,默认情况下useradd创建一个没有 shell 的用户。和ssh如果您连接到无外壳帐户,您将无法执行任何操作

解决方案是为您的用户添加一个 shell:

chsh -s /bin/sh golden

相关内容