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


33

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


useradd --password-disable和adduser --password禁用。我已经查看了这两个选项,但都没有将密码禁用作为两个选项。
user119776 2015年

您知道一般如何设置ssh密钥登录吗?我认为该帐户无需锁定,这意味着有一些密码处于活动状态。可能是一个没人真正知道的长密码。
米卡·尤德

我拥有密钥,并且知道我需要在用户目录下创建文件夹,并将公共部分粘贴到该目录中。我可以尝试这种方式,但以为我也需要禁用用户密码。
user119776 2015年

我同意Lambert的看法,而不是发表另一篇文章向您展示如何添加用户。您需要特别关注此任务遇到的问题。如果您甚至不知道如何添加用户,都应该从小处着手,逐步提高自己的水平。我相信您只需创建用户,无需设置任何密码,并将其密钥放在/home/username/.ssh/authorized_keys中。
Baazigar 2015年

Answers:


37

从创建用户开始:

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

从客户端创建一个密钥对,您将使用它ssh来自:

ssh-keygen -t dsa

将公钥复制/home/username/.ssh/id_dsa.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_dsa~/.ssh/。您还可以使用以下方式指定身份文件:

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

3
实际上,我没有忘记密码锁定。由于我只是没有设置它,因此新创建的用户的密码会自动锁定。
兰伯特

3
使用RSA而不是DSA
sg

您意识到“ ssh-keygen -t dsa”命令将为当前用户创建密钥,它可能会替换您自己的密钥
yarun可以

15

在Ubuntu上,您可以使用以下方式添加用户:

adduser --disabled-password <username>

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


7

您可以使用:

usermod --lock <username>

从手册页:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.