MyFritz-Kennungen:
Findest Du unter Internet→Online-Monitor oder in den Statusmails der Fritzbox, sieht aus wie
huakjdh23hlhlwhl23h4.myfritz.net
und ändert sich nicht.
Portforwarding einrichten:
- Internet→Freigaben→Gerät für Freigabe hinzufügen Dann Rechner auswählen oder IP-Adresse setzen (Hat das Gerät eine feste IP?)
- Danach:
Neue Freigabe
- Statt "MyFritz!-Freigabe" "Port-Freigabe wählen"
Nunmehr:
- Anwendung: "Andere Anwendung"
- Bezeichnung: ssh-server oder was Du Dir ausdenkst.
- Protokoll: TCP
- Port an Gerät: 22 bis 22
- Port extern gewünscht, zB. 20022
- Freigabe aktivieren nicht vergessen.
Von da an klicke auf alles, was wie Ja
, Hurra
, OK
, Übernehmen
oder Weiter
anmutet bis Du auf dem Übersichtsfenster bist und Deine Freigabe einen grünen Punkt hat.
User-Einrichtungen auf den Hosts:
Du musst nichts tun. Es wird Dein ganz normaler Linux-Benutzer benutzt. Auch dessen Passwort. Tipp: ssh-keygen
benutzen und dem privaten Schlüssel (~/.ssh/id_rsa) mit einen Passwort erzeugen. Den Privat-key dann (auf den künftigen Client, dort im Ordner ~/.ssh (sic: das geht dann genau so auch unter Windows 10!) mitnehmen und den Public-Key auf der Linux-Kiste mit
~> cat .ssh/id_rsa.pub >> .ssh/authorized_keys
zu den Erlaubten hinzufügen. Sobals man den privaten Schlüssel auf dem Client hat, auf dem Server als root in /etc/ssh/sshd_conf die PasswordAuthentification auf "no" setzen und dann nur für das lokale Netz wieder erlauben. (siehe man 5 sshd_config
):
### File: /etc/ssh/sshd_conf
#… Ändere diese Zeilen
PasswordAuthentication no
PermitRootLogin no
#… Neue Zeilen:
Match Address 192.168.1.*
PasswordAuthentication yes
PermitRootLogin without-password
Verzeichnisfreigaben
„Issnich“ wegen „Issnich“ wegen „Mussnich“. Siehe unten.
...???
Daten ändern und Verbinden:
ServerName="huakjdh23hlhlwhl23h4.myfritz.net";
ServerPort=20022;
UserName="ts";
LocalDir="/home/ts/mounts/zuHause";
if [ ! -d "${LocalDir}" ]; then
mkdir -p "${LocalDir}" || exit 1;
fi
sshfs -p ${ServerPort} -o reconnect "${UserName}@${ServerName}" "${LocalDir}"
cd ${LocalDir}"; ls
Man kann natürlich auch ein Verzeichnis mounten. Neue und geänderte Zeilen:
${ServerDir}="/foo/bar/baz";
sshfs -p ${ServerPort} -o reconnect "${UserName}@${ServerName}:${ServerDir}" "${LocalDir}";
Ich habe dafür natürlich ein schönes Skript mit tollen Fehlermeldungen.
Da war noch was? Ja: Verbindung trennen:
Geht leider nur als root. (sudo umount "${LocalDir}"
). Kann man aber Skripten und das Skript ausgewählten Benutzern/Gruppen dann mit einer Zeile in einer neuen Datei unter /etc/sudoers.d ohne Passwort (auf dem Client natürlich!) erlauben.
Hints:
- Du erreichst den Server dann auch mit normalem
ssh
oder rsync
über den angegebenen Port (hier 20022). Den normalen Port 22 verwende ich nicht, weil ich mehrere Geräte in meinem Netz habe.
- Zum „gemeinsamen Arbeiten“ hat Mitleser 2.0 geschrieben. Man hat viel versprochen aber es gilt meistens dann doch: „Wer zu letzt speichert hat Recht“.
- In vielen Fällen (Zugfahrten?) kann es vorteilhaft sein, Dateien aus dem gemounteten Verzeichnis zu kopieren, zu bearbeiten und zurück zu kopieren.