Дозволити scp / ssh для користувача www-data


11

Я на Amazon EC2 за допомогою Ubuntu 10.04.2

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

Дякую!

Додавання рядка до мого / etc / ssh / sshd_config, здається, не працює.

AllowUsers www-data

Відповіді:


6

У Debian, на якому базується Ubuntu, користувач www-data має / bin / sh як оболонку за замовчуванням. Щоб увімкнути SFTP, ви можете створити /var/www/.ssh/authorized_keysз ним відкритий ключ. Дозволи /var/www/.sshмають бути 700, а дозволені файли дозволених ключів - 600. Вам потрібно додати наступне до конфігурації http, щоб заборонити доступ до цього каталогу.

<Directory /var/www/.ssh>
  Order Deny,Allow
  Deny from all
</Directory>

Ви можете перевірити налаштування користувачів www-data (домашній dir, shell тощо), використовуючи getent passwd www-data.

Переконайтеся, що ваш sshd_config має Subsystem sftp /usr/lib/openssh/sftp-server, і ви, ймовірно, захочете PasswordAuthentication noтакож встановити .


2

Це свого роду небезпечно. Я б запропонував вам завантажувати в проміжну область за допомогою іншого користувача та cronперіодично запускати роботу, щоб переміщувати речі там, де вона записується, та відповідно змінювати її дозволи.

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

Зрештою, ви також можете спробувати деякі рішення цього питання .


Я планував використовувати приватний ключ ssh для цього. Але якщо я використовую cron для копіювання файлів, чи не буде це трохи повільно, тому що мені доведеться чекати, коли скрипт cron скопіює його. Також я не зможу завантажувати файли. Мені дуже хочеться щось подібне до FTP для www-data, але захищене як scp.
неоднозначне

Інші рішення, які я даю, є здійсненними, мені лише ідея не подобається.
coredump

-3

Увійти як www-дані для scp - це марна трата часу.

Для команди scp, чому ви не використовуєте ssh2_scp_sendдля передачі файлів, вона проста і вам не потрібно додавати ssh або створювати відкритий ключ для www-даних користувача

наприклад

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

повинні працювати

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.