Я на Amazon EC2, использую Ubuntu 10.04.2
Моя веб-папка принадлежит www-data, поэтому я хочу иметь возможность войти на свой сервер как www-data для ssh и scp.
Спасибо!
Добавление строки в мой / etc / ssh / sshd_config, похоже, не работает.
AllowUsers www-data
В Debian, на котором основана Ubuntu, пользователь www-data имеет / bin / sh в качестве оболочки по умолчанию. Чтобы включить SFTP, вы можете создать /var/www/.ssh/authorized_keys
с вашим открытым ключом в нем. Разрешения на /var/www/.ssh
должно быть 700, а разрешения для файла authorized_keys должны быть 600. Вам нужно добавить следующее в свою конфигурацию http, чтобы запретить доступ к этому каталогу.
<Directory /var/www/.ssh>
Order Deny,Allow
Deny from all
</Directory>
Вы можете проверить настройки пользователей www-данных (домашний каталог, оболочка и т. Д.), Используя getent passwd www-data
.
Убедитесь, что в вашем sshd_config есть Subsystem sftp /usr/lib/openssh/sftp-server
, и вы, вероятно, захотите установить PasswordAuthentication no
также.
Это небезопасно. Я бы посоветовал вам загрузить в промежуточную область с помощью другого пользователя и запустить cron
job время от времени перемещать файлы туда, где они находятся, и соответствующим образом изменять права доступа.
Если вы действительно настаиваете на входе в систему как www-data
, вы должны использовать для этого закрытый ключ ssh (экземпляры AFAIK EC2 разрешают только аутентификацию ключа). Вы также должны проверить, что www-data
имеет действующую оболочку на /etc/passwd
и действующий домашний реж.
В конце концов, вы также можете попробовать некоторые решения этот вопрос.
Вход как www-data для scp - пустая трата времени.
Для команды scp, почему вы не используете ssh2_scp_send
для передачи файлов это просто и не требует добавления-ssh или создания открытого ключа для пользователя www-data
например
ssh2_scp_send($connection, '/directory/filename', '/remotedirectory/filename', 0644);
должно сработать