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


8

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

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

我知道如何使密码过期并迫使他在首次登录时重设密码。除非他已经有一些密码,否则这是行不通的,然后我必须告诉他。

我考虑过将密码设置为空-SSH不允许登录,但是任何人都可以su进入该用户。

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

Answers:


7

您有他的SSH公钥吗?将其放在.ssh/authorized_keys他的主目录中。一旦完成此操作(权限足够严格-SSH非常挑剔。)他就可以登录而根本不需要密码...而且他将永远不需要密码。

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


1
他需要输入密码,对sudo吗?
Leonid Shevtsov'9

1
您可以允许无密码的sudo。
MDMarra 2012年

1
有了USERNAME = NOPASSWD: /usr/local/bin/pwreset.shin /etc/sudoers之类的行,并且脚本pwreset.sh运行了命令,/usr/bin/passwd USERNAME他将不需要密码来(重新)设置自己的密码。
Ansgar Wiechers,2012年

0

只需将带有密码的文本文件放到用户拥有600权限的住所中。用户使用密钥登录即可更改密码并删除该文件。使用设置了suid位的skript,您甚至可以创建类似passwd <textfile的内容,而无需赋予用户读取文件的权限(group = root时的权限为060)


-2

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

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

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

3)因为您已经知道该怎么做才能在首次登录时强制重置


任何情况下都绝对不要使用任何类型的在线密码生成器(或-checker)。
Ansgar Wiechers,2012年

@AnsgarWiechers,您能以一个很好的论据支持该声明吗?
Zoredache

涉及太多,您无法控制。即使代码确实是JavaScript在浏览器中运行的:您是否在使用脚本之前每次都对脚本进行同行检查,以确保该脚本仍未在任何地方发送密码?
Ansgar Wiechers,2012年

这就是为什么您告诉它生成几百个密码并随机选择一个的原因。
2012年

@Grant:即使你挑一个出来几百个密码,攻击者仍然将下降到几百猜测,这是太容易蛮力。现在有足够的选项可以在本地生成随机密码,而无需进行任何类型的Web访问。如果您完全关心安全性,请使用其中一种。
Ansgar Wiechers,2012年
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.