@ubuntuli
erst, nachdem ich meinen vorigen Beitrag geschrieben hatte, sah ich in deinem Post einige Zeilen mehr, als ich in der Aufmerksamkeitsmail bekommen hatte und fürchte deshalb, mit meinem letzten Beitrag doch nicht alles abgedeckt zu haben, was du an Fragen aufgeworfen hattest. Ich will das hiermit versuchen, aber, wie immer: melde dich, falls etwas unklar ist. Ich bin weder Unix-Fachmann noch Schriftsteller und tue mir mit Erklärungen immer sehr schwer.
Also, zunächst vielleicht über die Grundlagen.
Wer im Internet surft, nutzt dazu in der Regel http(s) und
http ist eine Abkürzung für
"Hypertext Transfer Protocol".
ftp hingegen ist ein anderes Protokoll, es kann übersetzt werden mit
"File Transfer Protocol" und
sftp ist eine neuere Version und bedeutet
"SSH File Transfer Protocol" oder
"Secure File Transfer Protocol". Man kann im Wikipedia dazu Informationen nachlesen. Worauf es mir nun ankommt, ist, dass solche Protokolle zwischen einem Server und einem Client laufen. Das ist immer so und die goldene Regel ist, dass der Server dort läuft, wo die HW ist und das Protokoll zum Client verbindet, der wiederum entfernt sein kann, aber auch lokal sein darf.
Wenn du also mit deinem Internet-Browser (ich meine hier nicht das persönliche Du) eine Adresse eingibst, die mit http:// beginnt, dann willst du, dass dein Browser sich als Client mit einem Server im Netz verbindet und dabei dieses Protokoll benutzt.
Internet-Browser sind dafür entwickelt, sie können genau das, sie beherrschen http und stellen den Client für entsprechende Server.
Manchmal können sie noch mehr, etwa auch das ftp.
Das muss nicht sein, aber viele Browser beherrschen diesen recht alten Standard.
sftp ist indessen recht neu und wird wohl kaum von einem Internet-Browser unterstützt. Wenn ich es in Firefox versuche, erhalte ich eine solche Meldung:
Firefox weiß nicht, wie diese Adresse geöffnet werden soll, da eines der folgenden (view-source, sftp) kein registriertes Protokoll oder in diesem Kontext nicht erlaubt ist.
Was der Threadstarter fragte, war nun genau, welche Software man denn alternativ zu Filezilla als Client-SW benutzen kann.
Um dies zu testen, braucht es dann am einfachsten einen entsprechenden Server.
Also, identisch dazu, wenn man eine http-Seite aufrufen möchte und dazu einen http-Server kontaktieren muss, braucht man für ftp einen ftp-Server und für sftp einen sftp-Server, den man dann überhaupt erst als Client kontaktieren kann.
Solche Server gibt es viele, ich nenne mal den bekannten Apache als http-Server und den viel benutzten vsftpd als ftp-Server. Wer solch einen Server auf seinem PC betreiben will, muss die entsprechenden Programme installieren, konfigurieren und starten. Das gilt natürlich grundsätzlich auch für sftp, nur, es wird automatisch immer schon mit openssh ausgeliefert und gemeinsam gestartet.
ssh ist noch gar nicht besprochen. Es ist ebenfalls ein Server-Client-Dienst und ein Netzwerkprotokoll. Es soll eine sichere Verbindung zwischen zwei PCs erlauben und nutzt dazu ein Verfahren mit keys, Schlüsseln, die auf beiden Seiten vorhanden sein müssen. Sie werden automatisch erstellt und ausgetauscht, wenn man eine Verbindung herstellt. ssh nutze ich immer auf meinen Rechnern und dazu ist openssh der Standard, also das Programm, das dazu benutzt wird, der eigentliche Server. Wenn man ssh startet, wird ein Dämon losgelassen, der heißt sshd und kann in der Prozessliste gefunden werden. Für jede eingehende Verbindung wird ein eigener Dämon abgezweigt, so dass diese untereinander abschottet sind. Nun nutze ich diesen Dienst also in der Form, dass ich mich von meinem Arbeits-PC über ssh mit anderen Rechnern in meinem Netzwerk verbinde. Alle diese Rechner müssen also einen sshd laufen haben und so konfiguriert sein, dass sie mich einlassen. Dann kann ich auf der Konsole mit diesen Rechnern arbeiten, etwas nachsehen oder Dienste stoppen und wieder starten und so weiter, also aus der Ferne alles das, was ich auch direkt am Rechner in einer Konsole, also von der Shell aus machen kann.
Wenn ssh startet, liest es seine eigene Konfigurationsdatei und normalerweise starte ich den Dämon mit Systemstart automatisch auf meinen Rechnern, nur nicht im Knoppix, nicht auf allen.
Ich zeige nun mal die erste Verbindung aus meinem Arbeits-PC zu einem Knoppix, auf dem der ssh-Server schon gestartet ist:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
pit@senyo ~:- > ssh knoppix@192.168.0.168
The authenticity of host '192.168.0.168 (192.168.0.168)' can't be established.
RSA key fingerprint is SHA256:QB1CzFtbyJB9caHbGu+HLIZc7GLXsvw0o4ZAvlrQvPQ.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.168' (RSA) to the list of known hosts.
knoppix@192.168.0.168's password:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
knoppix@Microknoppix:~$ pwd
/home/knoppix
knoppix@Microknoppix:~$ ls
autopsy Desktop Downloads hg_2.jpg key logo.png Mail minirt mnt photorec.ses screenshots smplayer_screenshots wpa_supplicant.conf
knoppix@Microknoppix:~$
|
Ich denke, das ist soweit klar. Ich nutze also ssh und verbinde mich aus meinem FreeBSD zu Knoppix und melde mich dort als User knoppix mit dem richtigen Passwort an (default knoppix bei Knoppix, wenn ich nicht irre
-edit: hier irrte ich allerdings, siehe einen folgen Post dazu. Man muss knoppix erst ein Passwort geben). Das ist so gewöhnlich, dass man oft vergisst, dass hier ein vollwertiger Netzwerkdienst benutzt wird, der sein eigenes Protokoll hat. Und. Der auch noch automatisch sftp mitbringt.
Also, das alles ist viel komplexer, man kann sehr viel damit machen und einstellen (also konfigurieren), doch wenn man gar nichts verändert und einfach nur den ssh-Server startet, dann wird aus der default-Knfiguration ein funktionierender ssh-Dienst aufgebaut und ebenfalls ein nicht weiter bestimmter sftp-Server gestartet.
Bei mir nicht.
Also, auf meinen Systemen verhindere ich den Start dieses Dienstes immer, weil ich ihn nicht weiter konfiguriert habe und nicht vorgesehen ist, ihn zu verwenden. Verschiedene Netzwerkdienste erlauben die Übertragung von Dateien in meinem Netz und sind entsprechend meiner Vorstellungen konfiguriert. Als sftp hinzu kam, widmete ich mich dem nicht und ließ ihn einfach weg. Dazu muss ich die Konfiguration verändern.
Wenn ich nun zum testen von sftp einen Server hätte haben wollen, hätte ich auf mindestens einem Rechner die Konfiguration finden und ändern müssen, den Dienst neu starten und meinen Test machen, dann wieder zurück ändern und nochmal neu starten. Das ist kein großes Ding, gewiss, aber ich hatte einfach keine Lust dazu. Auf Knoppix läuft aber die unveränderte Konfiguration und wenn man sich die
/etc/ssh/sshd_config ansieht, dann enthält die ziemlich am Ende die Zeile:
|
Quellcode
|
1
|
Subsystem sftp /usr/lib/openssh/sftp-server
|
Genau diese Zeile ist also bei meinen Rechnern auskommentiert, wobei sie je nach System immer etwas anders aussehen kann.
Hier würde man "normalerweise" einen Anfang für eine eigene Konfiguration dieses Dienstes setzen und dann dafür sorgen, dass bestimmte Nutzer nur bestimmte Verzeichnisse erreichen können und so weiter, halt alles, was man eben mit solch einem Dienst an Auflagen haben will. Default gibt es quasi keine Konfiguration, ein bekannter Nutzer kann sich über sftp mit dem System verbinden und Dateien kopieren oder uploaden. Dazu braucht man nur noch einen Clienten.
OK, auf Knoppix habe ich also als root mit
|
Quellcode
|
1
|
# service ssh start
|
den ssh-Dämon losgelassen. Ich wollte mich über ssh mit Knoppix verbinden und auf der Konsole einige Dinge erledigen. Den Beginn solch einer Sitzung habe ich oben gezeigt.
Gleichzeitig und unbemerkt wird dabei auch der sftp-Server gestartet. Und den kann ich nun ebenfalls erreichen. Ich will das mal zeigen:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
pit@senyo ~:- > sftp knoppix@192.168.0.168
knoppix@192.168.0.168's password:
Connected to 192.168.0.168.
sftp> pwd
Remote working directory: /home/knoppix
sftp> ls
Desktop Downloads Mail autopsy hg_2.jpg
key logo.png minirt mnt photorec.ses
screenshots smplayer_screenshots wpa_supplicant.conf
sftp> help
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
chgrp grp path Change group of file 'path' to 'grp'
chmod mode path Change permissions of file 'path' to 'mode'
chown own path Change owner of file 'path' to 'own'
df [-hi] [path] Display statistics for current directory or
filesystem containing 'path'
exit Quit sftp
get [-afPpRr] remote [local] Download file
.....
? Synonym for help
sftp> bye
pit@senyo ~:- >
|
Das ist identisch zu einer ftp-Sitzung von der Konsole. Die Konsole (shell) bringt hier einen passenden Clienten mit. Ich sage das mal so einfach.
Wie bei der Sitzung mit ssh, wo ich also vom entfernten Rechner auf die Konsole eines anderen PCs komme, wird ein vollwertiger Netzwerkdienst mit Server - Protokoll - Client etabliert. Ich versuche mal, das gleiche mit einem Screenshot von Filezilla zu zeigen und hänge das an.[attach]991[/attach]
Nun konnte ich nicht mit "meinem pcmanfm" das machen, was ich mit Filezilla zeigen kann. Das entsprechende "Plugin" fehlt oder funktioniert nicht aus meinem System.
Der Service, also der ssh und damit auch sftp-Server sind aber auf Knoppix gestartet und so kann man das auch auf Knoppix selbst testen und richtet die Aufrufe nicht an eine entfernte IP, sondern an localhost.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
|
knoppix@Microknoppix:~$ sftp knoppix@localhost
knoppix@localhost's password:
Connected to localhost.
sftp> pwd
Remote working directory: /home/knoppix
sftp> ls
Desktop Downloads Mail autopsy hg_2.jpg key logo.png
minirt mnt photorec.ses screenshots smplayer_screenshots wpa_supplicant.conf
sftp> bye
knoppix@Microknoppix:~$
|
Ich zeige nur dies, aber identisch kann man den Aufruf lokal mit Filezilla oder pcmanfm oder Dolphin durchführen und eben testen.
Natürlich macht das nicht so den großen Sinn. Es ist eben nur ein Basis-Test.
Ein Service, der bei vielen Systemen läuft, ist CUPS, das Drucksystem. CUPS bringt eine Konfigurationsseite mit sich, einen http-Server. Der kann lokal aus einem Browser aufgerufen werden:
http://localhost:631 Auf dem Administration-Tab kann man einen Hacken setzen bei "Allow remote administration" und nachdem der Dienst dann neu gestartet wurde, kann fortan auch von einem entfernten Rechner diese Seite aufgerufen werden. Also, auch bei Knoppix, also Knoppix als Server-System.
Das macht meist nicht viel Sinn, ich erwähne das hier nur, um die Analogie zu zeigen. Server - Protokoll - Client und der Client kann entfernt sein, kann aber auch lokal sein.
Die Eingabe eines Aufrufs in einem Client "erzeugt also kein Netz". Wenn der Client das angesprochene Protokoll beherrscht und evtl auch noch grafisch aufbereitet, dann kann er sich mit einem Server verbinden, der dies zulässt. Der Client muss natürlich auch funktionieren und wenn ich das von Konsole aus durchführe, dann geht das auch nicht automatisch und immer. Es muss schon die komplette Client-SW verfügbar sein. Deshalb erwähnte ich den Namen des benutzen Konsolen-Programmes. Auch in Knoppix nutze ich rxvt-unicode und nicht das LX-Terminal oder etwas anderes, was default in Knoppix vorhanden ist. Ich hätte auch noch erklären müssen, dass ich in meinem FreeBSD die tcsh nutze und auf Knoppix eine bash. Ich weiß nicht genau, welche Angaben wie wichtig sind, vermute aber, dass man so etwas nicht einfach in einer Windows-Command-Shell machen kann, weil ich die in dieser Hinsicht als sehr beschränkt erlebte. Sie konnte bei meinen Versuchen nicht mal ssh, dazu wird immer putty oder sowas verwendet. Hingegen funktionieren auch sehr viele Webbrwoser unter Windows und ebenso Filezilla als ftp oder sftp Client. Damit ist es kein Problem, aus einem Windows heraus die CUPS-Einstellungen seines Knoppix zu administrieren oder einen sftp-Dateitransfer zwischen Windows und Knoppix zu etablieren. Das Prinzip ist immer Server - Protokoll - Client und das kann über ein Netzwerk laufen, oder eben lokal bleiben.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »pit234a« (09.11.2017, 11:48)