В 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-data (home dir, shell и т. Д.), Используя getent passwd www-data
.
Убедитесь, что ваш sshd_config имеет Subsystem sftp /usr/lib/openssh/sftp-server
, и вы, вероятно, захотите PasswordAuthentication no
также установить .
Вход в систему как www-data для scp - пустая трата времени.
Для команды scp, почему вы не используете
ssh2_scp_send
для передачи файлов, она проста и не требует добавления -ssh или создания открытого ключа для пользователя www-dataнапример
ssh2_scp_send($connection, '/directory/filename', '/remotedirectory/filename', 0644);
должно сработать
источник