linux – 是否有更简单的方法为新用户添加公钥验证?

我正处于使用Ubuntu 12.04在新的Web LEMP服务器上设置安全用户的艰难而痛苦的过程.我最初会设置类似vsftpd或proftpd的东西,但是很多人建议只是直接使用SFTP,所以我会.最终,我有一个主要用户(我只是用来防止root登录).我创建了这个新用户,生成了一个公钥对,将公钥上传到users~ / .ssh目录作为authorized_key,更改了SSH端口号,删除了root登录,并将passwordauthentication设置为NO,因此用户被迫使用他/她登录的钥匙.很容易(虽然在PC上工作似乎比我的OSX / NIX同行更令人头疼).

我现在正在尝试创建新用户(对于我的Web开发人员),这些用户只需拥有SFTP访问权限,并将他们的曝光仅限于他们收费的网络目录.每个目录都具有以下格式:

/var/www/sitename.com/public/

我的头痛现在开始.创建一个新用户?简单.添加密码?真的不需要给我需要公钥/私钥(他们永远不会有sudo访问权限)但是没关系.我正在努力解决以下问题:

>我如何在服务器上实际存储这个新用户的公钥?如果我以root用户身份登录并只在其主目录中创建authorized_keys文件,则它将具有root所有者和组权限,并且无法登录到服务器.同样,这些新用户无法登录并自行创建,因为他们不允许通过密码登录.

(注意:我也在努力设置sftp并将它们限制在各自的网站目录中,但我想我可以稍后自己解决这个问题).

任何建议?

编辑

目前的过程是这样的:

>从个人那里获取公钥
>完成以下命令:

#sudo mkdir -p /home/newuser/.ssh
#sudo nano /home/newuser/.ssh/authorized_key
#(copy key into single line and save)
#chown -R newuser:newuser /home/newuser
#chmod 700 /home/newuser/.ssh
#chmod 600 /home/newuser/.ssh/authorized_key

我想这并不是绝对可怕但是如果我们有大量的开发人员(加上我要用SFTP部分设置它们并限制目录的时间),这似乎是一个巨大的痛苦.

最佳答案
您需要更改文件的所有权并适当地设置权限.

$chown -R newuser /path/to/home/.ssh
$chmod 700 /path/to/home/.ssh
$chmod 600 /path/to/home/.ssh/authorized_keys

为了使此过程更简单,可重复和可审计,请使用配置管理系统进行用户管理.所有广泛使用的配置管理系统(puppet,chef,ansible等)都具有创建用户和部署密钥的能力.使用配置管理系统的一个巨大好处是,您还可以将配置保持在源代码管理中.

转载注明原文:linux – 是否有更简单的方法为新用户添加公钥验证? - 代码日志