允许www-data用户使用scp / ssh


11

我在使用Ubuntu 10.04.2的Amazon EC2上

我的Web文件夹归www-data所有,因此我希望能够以www-data的身份登录ssh和scp到我的服务器。

谢谢!

将行添加到我的/ etc / ssh / sshd_config中似乎不起作用。

AllowUsers www-data

Answers:


6

在Ubuntu所基于的Debian上,www-data用户将/ bin / sh作为默认shell。要启用SFTP,您可以在其中创建/var/www/.ssh/authorized_keys公共密钥。的权限/var/www/.ssh应为700,授权的密钥文件的权限应为600。您需要将以下内容添加到http配置中,以禁止访问此目录。

<Directory /var/www/.ssh>
  Order Deny,Allow
  Deny from all
</Directory>

您可以使用验证www-data用户设置(主目录,shell等)getent passwd www-data

确保您的sshd_config具有Subsystem sftp /usr/lib/openssh/sftp-server,并且您可能还要进行设置PasswordAuthentication no


2

这是一种不安全感。我建议您使用其他用户上载到中间区域,cron并不时运行作业以将内容移动到其所记录的位置并相应地更改其权限。

如果您确实坚持以as身份登录www-data,则必须使用ssh私钥进行此操作(AFAIK EC2实例仅允许进行密钥身份验证)。您还必须检查是否www-data具有有效的外壳程序/etc/passwd和有效的主目录。

最后,您还可以尝试此问题的一些解决方案。


我打算使用ssh私钥来做到这一点。但是,如果我使用cron复制文件,那会不会有点慢,因为我必须等待cron脚本复制它。另外,我将无法上传文件。我真正想要的是类似FTP的www-data,但是像scp一样安全。
ambiguousmouse11年

我给出的其他解决方案是可行的,我只是不喜欢这个想法。
coredump

-3

以www-data作为scp登录是浪费时间。

对于scp命令,为什么不使用它ssh2_scp_send来传输文件,它很简单,不需要为用户www-data添加ssh或创建公钥。

例如

ssh2_scp_send($connection, '/directory/filename', '/remotedirectory/filename', 0644);

应该管用

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.