我在使用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);
应该工作