I am on Amazon EC2 using Ubuntu 10.04.2
My web folder is owned by www-data so I want to be able to log into my server as www-data for ssh and scp.
Adding the line to my /etc/ssh/sshd_config does not seem to work.
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
On Debian, which Ubuntu is based on, the www-data user has /bin/sh as the default shell. To enable SFTP, you can create
/var/www/.ssh/authorized_keys with you public key in it. The permissions on
/var/www/.ssh should be 700, and the permissions on the authorized_keys file should be 600. You'll want to add the following to your http configuration to prohibit access to this directory.
<Directory /var/www/.ssh> Order Deny,Allow Deny from all </Directory>
You can verify the www-data users settings (home dir, shell, etc) using
getent passwd www-data.
Make sure your sshd_config has
Subsystem sftp /usr/lib/openssh/sftp-server, and you'll probably want to set
PasswordAuthentication no also.
This is kind of insecure. I would suggest you to upload to an intermediate area using another user and run a
cron job from time to time to move stuff where it belogs and change its permissions accordingly.
If you really insist on logging on as
www-data, you must use a ssh private key to do that (AFAIK EC2 instances only allow key authentication). You must also check that
www-data has a valid shell on
/etc/passwd and a valid home dir.
In the end, you can also try some solutions of this question.
Logging in as www-data for scp is waste of time.
For the scp command why you dont use
ssh2_scp_send for transferring files,it is simple and doesn't need you to add-ssh or create a public key for the user www-data
ssh2_scp_send($connection, '/directory/filename', '/remotedirectory/filename', 0644);