第一次尝试无法通过 SSH 连接到 Centos 上新创建的用户

Unable to ssh into a newly created user on Centos on first attempt

这就是我正在做的事情:

  1. 正在 Linode 上创建新服务器。 OS是centos 6.5
  2. 以 root 身份登录
  3. 运行以下脚本来添加一个名为 shortfellow 的用户,该用户没有密码。

脚本是:

#!/bin/bash

yum -y update
adduser shortfellow

mkdir -p /home/shortfellow/.ssh
echo "ssh-rsa REALLYLONGSSHPUBLICKEY shortfellow@example.io" >> /home/shortfellow/.ssh/authorized_keys

chmod -R 700 /home/shortfellow/.ssh
chown -R shortfellow:shortfellow /home/shortfellow/.ssh
su - shortfellow
exit

问题是我第一次尝试通过 ssh 进入系统。它根本不起作用。它只是要求输入密码。我按 ctrl + c 并以同一用户身份再次尝试 ssh,成功了。

这种行为真的很烦人,因为我正在编写代码以编程方式创建服务器,但由于这个愚蠢的问题而无法正常工作。

有谁知道为什么这可能无法按预期工作?

我在 exit 之前的脚本中执行了 /sbin/mkhomedir_helper shortfellow,之后它可以正常工作。

我想问题确实是用户的主目录仅在登录时创建,当我尝试以编程方式创建此用户时,由于某种原因不会发生这种情况。