添加没有密码但使用 SSH 和公钥的用户

添加没有密码但使用 SSH 和公钥的用户

我想向 Red Hat Linux 添加一个用户,该用户不会使用密码登录,而是使用公钥进行 ssh。这将在命令行上。

答案1

从创建用户开始:

useradd -m -d /home/username -s /bin/bash username

从客户端创建一个密钥对,您将使用该密钥对ssh

ssh-keygen -t rsa

复制公钥/home/username/.ssh/id_rsa.pub到 RedHat 主机上/home/username/.ssh/authorized_keys

对 RedHat 主机上的文件设置正确的权限:

chown -R username:username /home/username/.ssh
chmod 700 /home/username/.ssh
chmod 600 /home/username/.ssh/authorized_keys

确保 RedHat 主机上启用了公钥身份验证:

grep  PubkeyAuthentication /etc/ssh/sshd_config
#should output:
PubkeyAuthentication yes

如果没有,请将该指令更改为 yes 并重新启动sshdRedHat 主机上的服务。

从客户端开始ssh连接:

ssh username@redhathost

它应该自动查找id_rsa中的密钥~/.ssh/。您还可以使用以下方式指定身份文件:

ssh -i ~/.ssh/id_rsa username@redhathost

答案2

在 Ubuntu 上,您可以使用以下命令添加用户:

adduser --disabled-password <username>

.ssh/authorized_keys然后使用其公钥在其主目录中创建文件。

答案3

你可以使用:

usermod --lock <username>

从手册页:

锁定用户的密码。这会添加一个“!”在加密密码前面,有效地禁用密码。不能将此选项与 -p 或 -U 一起使用。注意:如果您希望锁定帐户(不仅仅是使用密码访问),您还应该将 EXPIRE_DATE 设置为 1。

答案4

完整脚本(<SSH_PUB_KEY>格式为ssh-rsa …):

NEW_USER=newuser

sudo adduser --disabled-password "$NEW_USER"
sudo -i -u "$NEW_USER"

# now you are under the new user's shell
cd
mkdir -p .ssh
chmod 0700 .ssh
echo "<SSH_PUB_KEY>" > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

我一直在寻找一个脚本,我可以无畏地运行它来创建具有适当 SSH 权限的新用户,所以如果您也这样做,我相信这应该对您有所帮助:)

相关内容