我想向 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 并重新启动sshd
RedHat 主机上的服务。
从客户端开始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 权限的新用户,所以如果您也这样做,我相信这应该对您有所帮助:)