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:
#/bin/bash
### File ~/bin/mysshfs
## Config:
ServerName="huakjdh23hlhlwhl23h4.myfritz.net";
ServerPort=20022;
UserName="ts";
LocalDir="/home/ts/mounts/zuHause";
## Program:
if [ ! -d "${LocalDir}" ]; then
mkdir -p "${LocalDir}" || exit 1;
fi
sshfs -p ${ServerPort} -o reconnect "${UserName}@${ServerName}" "${LocalDir}"
cd ${LocalDir}"; ls #Boris B. will ja wissen ob er schon drin ist
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
oderrsync
ü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.