Erlaube scp / ssh für www-data Benutzer

11

Ich bin auf Amazon EC2 mit Ubuntu 10.04.2

Mein Webordner gehört www-data, daher möchte ich mich als www-data für ssh und scp bei meinem Server anmelden können.

Vielen Dank!

Das Hinzufügen der Zeile zu meiner / etc / ssh / sshd_config scheint nicht zu funktionieren.

AllowUsers www-data
mehrdeutige Maus
quelle

Antworten:

6

Unter Debian, auf dem Ubuntu basiert, hat der Benutzer von www-data / bin / sh als Standard-Shell. Um SFTP zu aktivieren, können Sie /var/www/.ssh/authorized_keysmit Ihrem öffentlichen Schlüssel darin erstellen . Die Berechtigungen für /var/www/.sshsollten 700 und die Berechtigungen für die Datei authorized_keys 600 sein. Sie sollten Ihrer http-Konfiguration Folgendes hinzufügen, um den Zugriff auf dieses Verzeichnis zu verhindern.

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

Sie können die Einstellungen der Benutzer von www-data (Ausgangsverzeichnis, Shell usw.) mit überprüfen getent passwd www-data.

Stellen Sie sicher, dass Ihre sshd_config hat Subsystem sftp /usr/lib/openssh/sftp-server, und Sie möchten wahrscheinlich auch festlegen PasswordAuthentication no.

Slillibri
quelle
2

Das ist irgendwie unsicher. Ich würde Ihnen empfehlen, mit einem anderen Benutzer in einen Zwischenbereich hochzuladen und cronvon Zeit zu Zeit einen Job auszuführen , um Inhalte dorthin zu verschieben, wo sie sich befinden, und ihre Berechtigungen entsprechend zu ändern.

Wenn Sie wirklich darauf bestehen, sich als www-dataanzumelden, müssen Sie dazu einen privaten SSH-Schlüssel verwenden (AFAIK EC2-Instanzen erlauben nur die Schlüsselauthentifizierung). Sie müssen auch überprüfen, ob www-dataeine gültige Shell /etc/passwdund ein gültiges Ausgangsverzeichnis aktiviert sind.

Am Ende können Sie auch einige Lösungen für diese Frage ausprobieren .

Core-Dump
quelle
Ich hatte vor, dafür einen privaten SSH-Schlüssel zu verwenden. Aber wenn ich cron zum Kopieren der Dateien verwende, wäre es nicht etwas langsam, da ich warten müsste, bis das cron-Skript es kopiert. Außerdem kann ich keine Dateien hochladen. Was ich wirklich will, ist so etwas wie FTP für WWW-Daten, aber sicher wie SCP.
Mehrdeutige
Die anderen Lösungen, die ich gebe, sind machbar, ich mag die Idee nur nicht.
Coredump
-3

Das Anmelden als WWW-Daten für SCP ist Zeitverschwendung.

Für den Befehl scp, warum Sie ihn nicht ssh2_scp_sendzum Übertragen von Dateien verwenden, ist er einfach und erfordert nicht, dass Sie-ssh hinzufügen oder einen öffentlichen Schlüssel für den Benutzer www-data erstellen

beispielsweise

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

sollte arbeiten

Geheimnis
quelle