Разрешить scp / ssh для пользователя www-data

11

Я на Amazon EC2 использую Ubuntu 10.04.2

Моя веб-папка принадлежит www-данным, поэтому я хочу иметь возможность войти на свой сервер как www-data для ssh и scp.

Спасибо!

Добавление строки в мой / etc / ssh / sshd_config, похоже, не работает.

AllowUsers www-data
ambiguousmouse
источник

Ответы:

6

В 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также установить .

slillibri
источник
2

Это немного небезопасно. Я бы посоветовал вам загрузить в промежуточную область, используя другого пользователя, и время cronот времени запускать задание, чтобы переместить материал, который он загружает, и соответственно изменить его разрешения.

Если вы действительно настаиваете на том, чтобы войти в систему как www-data, вы должны использовать для этого закрытый ключ ssh (экземпляры AFAIK EC2 разрешают только аутентификацию по ключу). Вы также должны проверить, что на нем www-dataесть действующая оболочка /etc/passwdи действительный домашний каталог.

В конце концов, вы также можете попробовать некоторые решения этого вопроса .

CoreDump
источник
Я планировал использовать закрытый ключ ssh для этого. Но если я использую cron для копирования файлов, не будет ли это немного медленным, потому что мне придется ждать, пока скрипт cron скопирует его. Кроме того, я не смогу загружать файлы. Что мне действительно нужно, так это что-то вроде FTP для www-данных, но безопасное, как scp.
двусмысленная
Другие решения, которые я даю, осуществимы, мне не нравится идея.
coredump
-3

Вход в систему как www-data для scp - пустая трата времени.

Для команды scp, почему вы не используете ssh2_scp_sendдля передачи файлов, она проста и не требует добавления -ssh или создания открытого ключа для пользователя www-data

например

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

должно сработать

тайна
источник