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

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

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

我知道如何使密码过期,迫使他在第一次login时重置密码。 但是,除非他已经有了一些密码,否则这是行不通的,我必须告诉他。

我想让密码变成空白的 – SSH不允许login,但是任何人都可以login到用户。

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

你有他的SSH公钥? 把它放在他的主目录中.ssh/authorized_keys 。 一旦你完成了这个任务(并且权限是足够的限制的 – SSH是这个挑剔的),他将能够login而不需要任何密码…他永远不会需要一个。

最好的部分是他的公钥不敏感,所以在电子邮件或聊天中传递很好,他的私钥永远不会离开他的电脑。

只需在用户家中放置一个带有密码的文本文件,权限为600.用户使用密钥更改密码并删除文件。 随着suid位设置,你甚至可以创build一些像passwd <textfile,而不给予用户阅读文件的权利(权限将是060组= root)

设置默认密码是不可避免的。 我的程序是:

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

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

3)强制重新login,因为你已经知道该怎么做了