批量创建可以通过 ssh 密钥登录但不需要密码的用户

批量创建可以通过 ssh 密钥登录但不需要密码的用户

我正在尝试批量创建可以通过 ssh 私钥/公钥登录但不能使用用户登录的用户(有点像使用 newusers,但我想确保用户不能通过 ssh 登录)。

我的方法:通过脚本,我使用 useradd 用户名创建用户,然后我通过 ssh-keygen 创建密钥,并将公钥作为 authorized_keys 放在 ssh 服务器上(假设 id_rsa、id_rsa.pub 和 authorized_keys 在双方都位于正确的位置,权限正确且所有权正确)

不幸的是,使用 useradd 创建的帐户是禁用的。我只有在先使用 passwd 设置密码后才能登录。如果我尝试使用 passwd -u username 启用帐户,它会抱怨它不安全(这是正确的)。我看到有人建议使用 passwd -l 锁定用户,但即使有密钥,它仍然无法登录。我可以生成一个随机密码,但我正在寻找是否有更好的方法(不允许所有用户登录不是一个选项)

在此先感谢您的帮助。

答案1

我尝试了以下

# On machineA
useradd testuser
passwd -l testuser
# Created /home/testuser/.ssh                 drwx------ testuser testuser
# Created /home/testuser/.ssh/authorized_keys -rw------- testuser testuser

# On machineB
ssh -i /path/to/id_rsa -l testuser machineA

可以。但是testuser尚未设置任何有效密码,因此无法使用密码登录。

相关内容