SSH, SFTP und FTP: Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
Ruderich (Diskussion | Beiträge)
K typo
 
(15 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Warum kein FTP?==
==Was ist der Unterschied==


Bei Verbindungen nach dem ''File-Transfer-Protocol'' besteht keine Möglichkeit, die Übertragung zu verschlüsseln. Auch übliche SSL-Tunnel-Lösungen sind aufgrund der Struktur des FTP technisch nicht möglich. Dies gilt sowohl für das Anmelden am FTP-Server (Zugangspasswort) als auch für die übertragenen Daten (evtl. MySQL-Passwörter, etc.).
Das SSH-Protokoll ('''s'''ecure '''sh'''ell) beschreibt eine Methode zum verschlüsselten Zugriff auf entfernte Rechner. Mittels SSH ist die Bedienung eines fremden Rechners so möglich als würde man selbst an diesem sitzen (»remote console«). Dabei ist sowohl die Übertragung als auch die Anmeldung stark verschlüsselt und nicht von Dritten mitlesbar. Als zusätzlichen Komfort, besteht die Möglichkeit, sich mit [[Key-Login (OpenSSH)|SSH-Key]] anzumelden.  


Aufgrund dieser nicht behebbaren Schwachstellen haben wir uns entschlossen, keinen FTP-Zugang einzurichten. Die Alternativen über das SSH-Protokoll bieten die selben Möglichkeiten (und noch zahlreiche mehr), daher sollte dem Benutzer kein Nachteil entstehen.
SFTP ist eine Datei-Übertragungs-Technik, die direkt auf dem SSH-Zugriff aufbaut und daher die Verschlüsselung von SSH mitbenutzt.


==Was ist ssh / scp?==
Das traditionelle FTP-Zugriffs-Verfahren bietet dagegen von Haus aus keine Möglichkeit einer Verschlüsselung. Die Konzeption des FTP-Protokolls erschwerte es lange Zeit, eine sinnvolle Verschlüsselung nachzurüsten. Auch daher haben wir zu Beginn bewusst vollständig auf FTP-Zugriffe verzichtet. Zwischenzeitlich wurde mit der ''FTPES'' genannten Technik eine vollumfängliche Verschlüsselung in das FTP-Protokoll eingebaut. Daher bestehen jetzt keine weiteren Bedenken, FTP einzusetzen. Der Zugriff muss aber zuerst aktiviert werden und es muss ein Programm eingesetzt werden, das wirklich auch FTPES beherrscht.


SSH bedeutet '''''S'''ecure '''SH'''ell'' und beschreibt eine Methode zum verschlüsselten Zugriff auf entfernte Rechner. Mittels SSH ist die Bedienung eines fremden Rechners so möglich als würde man selbst an diesem sitzen. Dabei ist sowohl die Übertragung als auch die Anmeldung stark verschlüsselt und daher nicht von Dritten mitlesbar. Als zusätzlichen Komfort, besteht die Möglichkeit, sich mit [[Key-Login (OpenSSH)|SSH-Key]] anzumelden.
==FTP-Zugriff==


SCP ist eine Möglichkeit zum Übertragen von Dateien über eine verschlüsselte SSH-Verbindung.
{{AlertBox
|title=Benutzen Sie wenn möglich SFTP
|content=Die Möglichkeit, den FTP-Zugriff zu aktivieren ist für '''Sonderfälle''' vorgesehen und ist niemals für den normalen Dateizugriff notwendig. Sprechen Sie uns bitte an, wenn Sie unsicher sind, welches Verfahren Sie nutzen sollen. Und testen Sie vorher bitte das einfache SFTP.
}}


SFTP ist eine FTP-Emulation, ebenfalls über SSH. Alle von FTP bekannten Funktionen können ebenfalls über SFTP benutzt werden. Durch die gleichzeitige Möglichkeit SSH als Konsole aufzurufen, erweitern sich die Möglichkeiten drastisch.
Bitte beachten Sie: Wir erlauben nur verschlüsselten Zugriff mittels des FTPES-Protokolls (''FTP explicit security''). Nicht alle FTP-Programme beherrschen dieses Verfahren. Es wird jedoch nur bei diesem Verfahren sicher gestellt, dass sowohl Ihre Anmeldedaten als auch die übertragenen Dateien zuverlässig geschützt werden.


==Clients==
Eine Liste der FTPES-fähigen Client-Programme befindet sich z.B. [http://de.wikipedia.org/wiki/FTP_%C3%BCber_SSL in der Wikipedia]. Im Zweifel versuchen Sie es bitte mit dem Programm [http://www.filezilla.de/download.htm ''FileZilla''], das für alle verbreiteten Plattformen frei verfügbar ist, und der Angabe ''ftpes://[hostname]'' im Feld ''Host'' (z.B. ''ftpes://zucker.schokokeks.org'').
 
Bevor Sie Ihren Zugang über FTP benutzen können, müssen Sie dies aktivieren. Im Webinterface steht Ihnen diese Einstellung zur Verfügung.
Es ist auch möglich, zusätzliche FTP-Benutzer anzulegen, die dann nur auf einzelne Unterverzeichnisse Zugriff erhalten.
 
Sofern Sie lediglich selbst auf Ihre Dateien zugreifen, sollten Sie auf FTP verzichten und das SFTP-Protokoll nutzen. Bei der Bedienung bzw. dem Komfort mittels FileZilla macht dies keinen Unterschied. Eine Anleitung zur Nutzung von FileZilla mittels SFTP befindet sich [[FileZilla|auf einer separaten Wiki-Seite]].
 
==SSH- / SFTP-Clients==
 
===Portabel (verfügbar für Windows, Linux und Mac OS X)===
 
====FileZilla====
 
[http://filezilla.sourceforge.net FileZilla] ist ein freies und sehr einfaches und übersichtliches Dateiübertragungs-Programm, das mehrere Zugangsformen unterstützt. FileZilla beherrscht auch SFTP und FTPES, welche wir bei schokokeks.org anbieten.
 
[[FileZilla|Anleitung zur Nutzung von FileZilla]].


===Linux (teilweise auch Mac OS X)===
===Linux (teilweise auch Mac OS X)===
Zeile 29: Zeile 47:
Eine der bequemsten Möglichkeiten, die eigene Homepage aktuell zu halten, ist ''[http://samba.org/rsync/ rsync]''. ''rsync'' ist ein Programm zum Synchronisieren von beliebigen Verzeichnissen und es kann genauso lokal oder über eine SSH-Verbindung arbeiten.
Eine der bequemsten Möglichkeiten, die eigene Homepage aktuell zu halten, ist ''[http://samba.org/rsync/ rsync]''. ''rsync'' ist ein Programm zum Synchronisieren von beliebigen Verzeichnissen und es kann genauso lokal oder über eine SSH-Verbindung arbeiten.


Angenommen, die lokale Kopie der Homepage (die man bearbeitet) liegt unter ''/var/www/blablub.de'' und die öffentliche Version (die synchronisiert werden soll) liegt unter ''schokokeks.org:websites/blablub.de'', dann könnte der rsync-Befehl so aussehen:
Angenommen, die lokale Kopie der Homepage (die man bearbeitet) liegt unter ''/var/www/blablub.de'' und die öffentliche Version (die synchronisiert werden soll) liegt unter ''zucker.schokokeks.org:websites/blablub.de'', dann könnte der rsync-Befehl so aussehen:


  rsync --quiet --recursive --links --safe-links --perms --rsh="ssh -q" --delete \
  rsync --quiet --recursive --links --safe-links --perms --rsh="ssh -q" --delete \
       --compress  /var/www/blablub.de/ schokokeks.org:websites/blablub.de/
       --compress  /var/www/blablub.de/ zucker.schokokeks.org:websites/blablub.de/


Damit würde die Seite exakt so gespiegelt wie sie lokal vorliegt.
Damit würde die Seite exakt so gespiegelt wie sie lokal vorliegt.
Zeile 38: Zeile 56:
Wenn man nun online bestimmte Daten hat, die beim update nicht gelöscht oder überschrieben werden sollen, dann kann man diese ''--exclude [pattern]'' explizit ausschließen. Die Hilfeseite, die man mit ''man rsync'' lesen kann, gibt noch einige weitere Beispiele und Informationen dazu her.
Wenn man nun online bestimmte Daten hat, die beim update nicht gelöscht oder überschrieben werden sollen, dann kann man diese ''--exclude [pattern]'' explizit ausschließen. Die Hilfeseite, die man mit ''man rsync'' lesen kann, gibt noch einige weitere Beispiele und Informationen dazu her.


====Nautilus und Konqueror====
====lftp====
 
[http://lftp.yar.ru/ lftp] ist ein sehr mächtiges FTP Programm für die Konsole. Es unterstützt SFTP und viele andere FTP Protokolle. Um sich zu schokokeks.org zu verbinden einfach den folgenden Befehl verwenden ("benutzername" durch den eigenen Benutzernamen ersetzen):
 
lftp sftp://benutzername@zucker.schokokeks.org/home/benutzername


Die Dateimanager von [http://www.gnome.org/ GNOME] und [http://www.kde.org/ KDE] beherrschen ebenso SFTP/SCP. Wenn man '''<nowiki>sftp://schokokeks.org/</nowiki>''' in der Adresszeile eingibt, verbinden sich die Dateimanager auf schokokeks.org.
Ähnlich wie rsync verfügt lftp über gute Mirror (Spiegeln von Daten) Funktionen.


Nautilus bringt seit der Version 2.6 den ''spacial mode'' mit. Das bedeutet, dass keine Adresszeile vorhanden ist. Entweder man tippt nun jedes mal '''ctrl + l''' und dann '''<nowiki>sftp://schokokeks.org</nowiki>''' oder man wählt '''Datei ---> Server verbinden''' und enthält hernach ein Icon auf dem Desktop, mit welchem man sich per Doppelklick auf den Keks verbinden kann.
lftp kann auch mit ftpes umgehen. Allerdings gilt das nur, wenn lftp gegen gnutls oder gegen eine aktuelle Beta-Version von openssl 1.0.0 gelinkt ist. Mit einer aktuellen openssl-version (0.9.8) funktioniert ftpes nicht. Die Debian-Pakete von lftp sind gegen gnutls gelinkt, für Gentoo-Nutzer empfielt es sich, lftp mit USE="gnutls" zu kompilieren.


Beim Konqueror besteht ebenfalls die Möglichkeit, per '''<nowiki>fish://schokokeks.org/</nowiki>''' zuzugreifen. Dabei wird dann kein SFTP sondern SSH direkt genutzt. Für unseren Server ist es egal (SFTP ist im Zweifel zu bevorzugen), bei anderen könnte SFTP deaktiviert sein.
====Nautilus und Konqueror====


====Filezilla====
Die Dateimanager von [http://www.gnome.org/ GNOME] und [http://www.kde.org/ KDE] beherrschen ebenso SFTP/SCP. Wenn man '''<nowiki>sftp://zucker.schokokeks.org/</nowiki>''' in der Adresszeile eingibt, verbinden sich die Dateimanager auf schokokeks.org.


Sehr einfaches und übersichtliches (S)FTP Programm. Im Feld "Host" bitte <nowiki>sftp://schokokeks.org</nowiki> eingeben, da schokokeks.org alleine nicht ausreicht, ansonsten ein sehr gutes Programm.
Nautilus bringt seit der Version 2.6 den ''spacial mode'' mit. Das bedeutet, dass keine Adresszeile vorhanden ist. Entweder man tippt nun jedes mal '''ctrl + l''' und dann '''<nowiki>sftp://zucker.schokokeks.org</nowiki>''' oder man wählt '''Datei ---> Server verbinden''' und enthält hernach ein Icon auf dem Desktop, mit welchem man sich per Doppelklick auf den Keks verbinden kann.


Beim Konqueror besteht ebenfalls die Möglichkeit, per '''<nowiki>fish://zucker.schokokeks.org/</nowiki>''' zuzugreifen. Dabei wird dann kein SFTP sondern SSH direkt genutzt. Für unseren Server ist es egal (SFTP ist im Zweifel zu bevorzugen), bei anderen könnte SFTP deaktiviert sein.


===Windows===
===Windows===


Leider gibt es für die Windows-Welt noch nicht so den Drang nach erhöhter Sicherheit, daher ist die Nachfrage (und damit wiederum das Angebot) an SSH-Clients nicht allzu groß. Dennoch gibt es auch hier vernünftige Clients, die eine Benutzung genau so einfach machen wie mit FTP.
Leider gibt es für die Windows-Welt noch nicht so den Drang nach erhöhter Sicherheit, daher ist die Nachfrage (und damit wiederum das Angebot) an SSH-Clients nicht allzu groß. Dennoch gibt es auch hier vernünftige Clients, die eine Benutzung genau so einfach machen wie mit FTP.
====FileZilla====
FileZilla ist ein FTP-Client, der auch scp beherrscht. Es steht frei zum [http://filezilla.sourceforge.net Download]. Ich habe es nur mit wine testen können, es sieht recht vernünftig aus


====WinSCP====
====WinSCP====

Aktuelle Version vom 8. Mai 2017, 10:41 Uhr

Was ist der Unterschied

Das SSH-Protokoll (secure shell) beschreibt eine Methode zum verschlüsselten Zugriff auf entfernte Rechner. Mittels SSH ist die Bedienung eines fremden Rechners so möglich als würde man selbst an diesem sitzen (»remote console«). Dabei ist sowohl die Übertragung als auch die Anmeldung stark verschlüsselt und nicht von Dritten mitlesbar. Als zusätzlichen Komfort, besteht die Möglichkeit, sich mit SSH-Key anzumelden.

SFTP ist eine Datei-Übertragungs-Technik, die direkt auf dem SSH-Zugriff aufbaut und daher die Verschlüsselung von SSH mitbenutzt.

Das traditionelle FTP-Zugriffs-Verfahren bietet dagegen von Haus aus keine Möglichkeit einer Verschlüsselung. Die Konzeption des FTP-Protokolls erschwerte es lange Zeit, eine sinnvolle Verschlüsselung nachzurüsten. Auch daher haben wir zu Beginn bewusst vollständig auf FTP-Zugriffe verzichtet. Zwischenzeitlich wurde mit der FTPES genannten Technik eine vollumfängliche Verschlüsselung in das FTP-Protokoll eingebaut. Daher bestehen jetzt keine weiteren Bedenken, FTP einzusetzen. Der Zugriff muss aber zuerst aktiviert werden und es muss ein Programm eingesetzt werden, das wirklich auch FTPES beherrscht.

FTP-Zugriff

Benutzen Sie wenn möglich SFTP

Die Möglichkeit, den FTP-Zugriff zu aktivieren ist für Sonderfälle vorgesehen und ist niemals für den normalen Dateizugriff notwendig. Sprechen Sie uns bitte an, wenn Sie unsicher sind, welches Verfahren Sie nutzen sollen. Und testen Sie vorher bitte das einfache SFTP.


Bitte beachten Sie: Wir erlauben nur verschlüsselten Zugriff mittels des FTPES-Protokolls (FTP explicit security). Nicht alle FTP-Programme beherrschen dieses Verfahren. Es wird jedoch nur bei diesem Verfahren sicher gestellt, dass sowohl Ihre Anmeldedaten als auch die übertragenen Dateien zuverlässig geschützt werden.

Eine Liste der FTPES-fähigen Client-Programme befindet sich z.B. in der Wikipedia. Im Zweifel versuchen Sie es bitte mit dem Programm FileZilla, das für alle verbreiteten Plattformen frei verfügbar ist, und der Angabe ftpes://[hostname] im Feld Host (z.B. ftpes://zucker.schokokeks.org).

Bevor Sie Ihren Zugang über FTP benutzen können, müssen Sie dies aktivieren. Im Webinterface steht Ihnen diese Einstellung zur Verfügung. Es ist auch möglich, zusätzliche FTP-Benutzer anzulegen, die dann nur auf einzelne Unterverzeichnisse Zugriff erhalten.

Sofern Sie lediglich selbst auf Ihre Dateien zugreifen, sollten Sie auf FTP verzichten und das SFTP-Protokoll nutzen. Bei der Bedienung bzw. dem Komfort mittels FileZilla macht dies keinen Unterschied. Eine Anleitung zur Nutzung von FileZilla mittels SFTP befindet sich auf einer separaten Wiki-Seite.

SSH- / SFTP-Clients

Portabel (verfügbar für Windows, Linux und Mac OS X)

FileZilla

FileZilla ist ein freies und sehr einfaches und übersichtliches Dateiübertragungs-Programm, das mehrere Zugangsformen unterstützt. FileZilla beherrscht auch SFTP und FTPES, welche wir bei schokokeks.org anbieten.

Anleitung zur Nutzung von FileZilla.

Linux (teilweise auch Mac OS X)

scp

scp ist das Standard-Programm auf jedem Unix-System mit OpenSSH.

scp quelldatei.txt server:pfad
scp server:pfad/quelldatei.txt /lokaler/pfad
scp -r quellordner/ server:
scp -r server:/home /tmp

rsync

Eine der bequemsten Möglichkeiten, die eigene Homepage aktuell zu halten, ist rsync. rsync ist ein Programm zum Synchronisieren von beliebigen Verzeichnissen und es kann genauso lokal oder über eine SSH-Verbindung arbeiten.

Angenommen, die lokale Kopie der Homepage (die man bearbeitet) liegt unter /var/www/blablub.de und die öffentliche Version (die synchronisiert werden soll) liegt unter zucker.schokokeks.org:websites/blablub.de, dann könnte der rsync-Befehl so aussehen:

rsync --quiet --recursive --links --safe-links --perms --rsh="ssh -q" --delete \
      --compress  /var/www/blablub.de/ zucker.schokokeks.org:websites/blablub.de/

Damit würde die Seite exakt so gespiegelt wie sie lokal vorliegt.

Wenn man nun online bestimmte Daten hat, die beim update nicht gelöscht oder überschrieben werden sollen, dann kann man diese --exclude [pattern] explizit ausschließen. Die Hilfeseite, die man mit man rsync lesen kann, gibt noch einige weitere Beispiele und Informationen dazu her.

lftp

lftp ist ein sehr mächtiges FTP Programm für die Konsole. Es unterstützt SFTP und viele andere FTP Protokolle. Um sich zu schokokeks.org zu verbinden einfach den folgenden Befehl verwenden ("benutzername" durch den eigenen Benutzernamen ersetzen):

lftp sftp://benutzername@zucker.schokokeks.org/home/benutzername

Ähnlich wie rsync verfügt lftp über gute Mirror (Spiegeln von Daten) Funktionen.

lftp kann auch mit ftpes umgehen. Allerdings gilt das nur, wenn lftp gegen gnutls oder gegen eine aktuelle Beta-Version von openssl 1.0.0 gelinkt ist. Mit einer aktuellen openssl-version (0.9.8) funktioniert ftpes nicht. Die Debian-Pakete von lftp sind gegen gnutls gelinkt, für Gentoo-Nutzer empfielt es sich, lftp mit USE="gnutls" zu kompilieren.

Nautilus und Konqueror

Die Dateimanager von GNOME und KDE beherrschen ebenso SFTP/SCP. Wenn man sftp://zucker.schokokeks.org/ in der Adresszeile eingibt, verbinden sich die Dateimanager auf schokokeks.org.

Nautilus bringt seit der Version 2.6 den spacial mode mit. Das bedeutet, dass keine Adresszeile vorhanden ist. Entweder man tippt nun jedes mal ctrl + l und dann sftp://zucker.schokokeks.org oder man wählt Datei ---> Server verbinden und enthält hernach ein Icon auf dem Desktop, mit welchem man sich per Doppelklick auf den Keks verbinden kann.

Beim Konqueror besteht ebenfalls die Möglichkeit, per fish://zucker.schokokeks.org/ zuzugreifen. Dabei wird dann kein SFTP sondern SSH direkt genutzt. Für unseren Server ist es egal (SFTP ist im Zweifel zu bevorzugen), bei anderen könnte SFTP deaktiviert sein.

Windows

Leider gibt es für die Windows-Welt noch nicht so den Drang nach erhöhter Sicherheit, daher ist die Nachfrage (und damit wiederum das Angebot) an SSH-Clients nicht allzu groß. Dennoch gibt es auch hier vernünftige Clients, die eine Benutzung genau so einfach machen wie mit FTP.

WinSCP

WinSCP ist ein SFTP/SCP-only-Client, der Keylogin unterstützt und einen SSH-Agent mitbringt. Wir haben auch eine Anleitung zur Benutzung.

Putty

Der wohl bekannteste SSH-Client für Windows ist Putty.

Im Unterschied zu den oben genannten ist Putty kein Client um Dateien zu kopieren sondern zum besagten Fernzugriff mit einer Konsole. Der ganze Komfort, den eine Linux-Konsole bietet, ist mit Putty nutzbar, es lassen sich damit aber keine Dateien übertragen.

Es gibt auch das Programm PSCP (vom selben Autor) zum Kopieren von Dateien, da es aber (siehe oben) bessere Alternativen gibt, sei davon abgeraten.