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

我在使用Ubuntu 10.04.2的Amazon EC2上

我的networking文件夹是由万维网数据所有,所以我想能够login到我的服务器作为万维网和SCP的万维网数据。

谢谢!

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

AllowUsers www-data 

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

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

您可以使用getent passwd www-data来validationwww-data用户设置(主目录,shell程序等)。

确保你的sshd_config有Subsystem sftp /usr/lib/openssh/sftp-server ,你可能也想设置PasswordAuthentication no

这是不安全的。 我build议你使用另一个用户上传到一个中间区域,并不时地运行一个cron作业来移动应用程序,并相应地更改其权限。

如果你真的坚持以www-datalogin,你必须使用ssh私钥来实现这一点(AFAIK EC2实例只允许密钥validation)。 您还必须检查www-data/etc/passwd和有效的主目录上是否有有效的shell。

最后,你也可以试试这个问题的一些解决scheme。

以www-data为scplogin是浪费时间。

对于scp命令,为什么不使用ssh2_scp_send传输文件,这很简单,不需要为用户www-data添加ssh2_scp_send或创build一个公钥

例如

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

应该工作