如何创建一个没有密码但可以设置密码的Linux用户?

如何创建一个没有密码但可以设置密码的Linux用户?

我有一个(假设的)人的用户名和 SSH 密钥,我需要授予他 Linux(Ubuntu)服务器的管理员访问权限。

我希望他能够通过 SSH 登录,然后通过安全连接自行设置密码,而不是传递密码。

我知道如何让密码过期,并迫使他在第一次登录时重置密码。但除非他有一些我已经有了密码,我必须告诉他。

我考虑将密码设为空白 - SSH 不允许登录,但任何人都可以su成为用户。

我的问题是,以这种方式创建帐户是否有一些最佳实践?或者设置默认密码是不可避免的?

答案1

您有他的 SSH 公钥吗?将其放入.ssh/authorized_keys他的主目录中。一旦您这样做了(并且权限足够严格 - SSH 对此很挑剔。),他将能够登录而无需任何密码……并且他永远不需要密码。

最好的部分是他的公钥并不敏感,因此通过电子邮件或聊天传递它是可以的,而他的私钥永远不会离开他的计算机。

答案2

只需将一个带有密码的文本文件放入用户主目录,权限为 600。用户使用密钥登录,更改密码并删除文件。使用设置了 suid 位的脚本,您甚至可以创建类似 passwd < textfile 的内容,而无需授予用户读取文件的权限(权限为 060,组为 root )

答案3

设置默认密码是不可避免的。我的步骤如下:

1) 生成一个安全的随机密码(每个用户的密码不同)。我使用 OSX 帐户设置中的密码生成器,但您也可以使用以下网站http://strongpasswordgenerator.com

2)安全地向他们提供密码,例如亲自或通过http://www.privnote.com

3)第一次登录时强制重置,因为你已经知道如何操作

相关内容