Für Linux-Netzwerke finde ich SSHFS nativ, stabil und extrem schnell. Ich habe zwei Xubuntu-Computer (18.04), die / home-Ordner über SSH freigeben.
Hier erfahren Sie , wie Sie sshfs einrichten und die Verbindung nach dem Neustart mithilfe von fstab automatisch wiederherstellen, ohne ein Kennwort eingeben zu müssen. Ein großes Dankeschön an den serverfault-Benutzer kubanczyk für die Wiederherstellung der Verbindung nach einem Remote-Suspend / Resume .
Ich verwende "Local machine - surfbox" für den Computer, von dem aus Sie eine Verbindung herstellen, und "Remote machine - devbox" für den Computer, mit dem Sie eine Verbindung herstellen.
Ersetzen Sie "remoteuser" durch den Benutzernamen, mit dem Sie sich auf dem Remote-Computer anmelden, und "localuser" durch den Benutzernamen, mit dem Sie sich auf dem lokalen Computer anmelden. Um die Benutzernamen zu überprüfen, geben Sie das echo $USER
Terminal auf entfernten und lokalen Rechnern ein.
Überprüfen Sie auch Ihre Benutzer-ID und Gruppen-ID. Beide sollten 1000 sein.
GroupID: id -g localuser
UserID:id -u localuser
1. Rufen Sie die IP-Adressen Ihrer lokalen und Remote-Computer ab.
hostname -I
Ich verwende 192.168.1.150 für Local Machine ('surfbox') und 192.168.1.151 für Remote Machine ('devbox')
2. Installieren Sie Pakete auf lokalen und Remote-Computern
sudo apt install sshfs fuse ssh
3. Erstellen Sie eine Gruppensicherung und fügen Sie einen lokalen Benutzer hinzu
Gruppe erstellen: sudo groupadd fuse
Füge localuser zur Gruppe hinzu: sudo usermod -a -G fuse $user
4. Aktivieren Sie "allow_other" in der Sicherungskonfiguration
Diese Option benötigen wir beim Mounten in fstab
Bearbeiten Sie /etc/fuse.conf
mit Ihrem Befehlszeileneditor. Entfernen Sie den Hashtag zuvor user_allow_other
und speichern Sie.
5. Generieren Sie SSH-Schlüssel auf dem lokalen Computer
Geben Sie kein Passwort ein, wenn Sie dazu aufgefordert werden . Drücken Sie einfach die Eingabetaste, um das Feld leer zu lassen.
ssh-keygen -t rsa -C youremail@example.com
Die Schlüssel werden im Basisverzeichnis des lokalen Computers /.ssh gespeichert
6. Übertragen Sie Ihren öffentlichen SSH-Schlüssel des lokalen Computers auf den Remote-Computer
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
Sie werden aufgefordert, das Kennwort für den Remote-Benutzer auf dem Remote-Computer einzugeben. Der öffentliche Schlüssel des lokalen Computers wird jetzt zur Datei ~ / .ssh / authorized_keys auf dem Remote-Computer hinzugefügt.
7. Erstellen Sie ein Verzeichnis im Ordner Local machine / mnt, in dem Sie den Ordner Remote machine / home bereitstellen.
Wählen Sie einen beliebigen Namen, der für Ihre Remote-Maschine sinnvoll ist.
sudo mkdir /mnt/devboxhome
8. Hängen Sie das Remote-Computer- / Ausgangsverzeichnis vom Terminal aus ein
Die Syntax für sshfs lautet
sshfs [user@]host:[directory] mountpoint [options]
wir gebrauchen
sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
Beispiel: Angenommen, "steve" ist der Benutzername auf lokalen und Remote-Computern
sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
Da Sie den öffentlichen RSA-Schlüssel auf den Remote-Computer übertragen haben, sollten Sie nicht zur Eingabe des Remote-Benutzer-Kennworts aufgefordert werden.
Sie erhalten eine Warnung, dass der Computer nicht vertrauenswürdig ist, und werden gefragt, ob er hinzugefügt werden soll. Fügen Sie den Remote-Computer als vertrauenswürdig hinzu.
9. Überprüfen Sie: Durchsuchen Sie das Remote-Maschinen- / Ausgangsverzeichnis
Im Terminal auf dem lokalen Computer können Sie nun das Verzeichnis / home des entfernten Computers unter / mnt / devboxhome auflisten
cd /mnt/devboxhome
ls
Oder verwenden Sie Nautilus, um das Verzeichnis zu durchsuchen. Toll.
10. Aktivieren Sie die Wiederherstellung der Verbindung nach dem Neustart
Wir werden einen Eintrag in / etc / fstab hinzufügen, um dies zu ermöglichen. Sie benötigen die Benutzer-ID und die Gruppen-ID Ihres lokalen Computers. Wenn Sie dies verpasst haben, lesen Sie die Einführung. Bearbeiten Sie / etc / fstab mit Ihrem Befehlszeileneditor und fügen Sie diese beiden Zeilen am Ende von / etc / fstab hinzu
# Mount devbox at boot
remoteuser@192.168.1.151:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
- delay_connect lässt den Kernel warten, bis das Netzwerk aktiv ist, bis er versucht, das Verzeichnis auf dem Remote-Computer bereitzustellen .
- Da wir während des Bootvorgangs als root ausgeführt werden, müssen wir die Schlüsseldatei angeben, die im lokalen Benutzerverzeichnis gespeichert ist.
- allow_other - andere Benutzer als derjenige, der das eigentliche Mounten ausführt, können auf das gemountete Dateisystem zugreifen.
- idmap = user - übersetzt nur die UID des Benutzers, der die Verbindung herstellt
- reconnect, ServersLiveInterval, ServerAliveCountMax - ssh sendet Keep-Alive-Pings. Wenn
ServerAliveCountMax
aufeinanderfolgende Pings fehlschlagen, stellen Sie die Verbindung wieder her.
Ein Benutzer, der sich als Steve auf lokalen und Remote-Rechnern anmeldet, hätte:
steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
WICHTIG : Ein Schrägstrich nach dem Remote-Verzeichnis: steve@192.168.1.151: / home / steve /
speichere / etc / fstab und ....
11. Starten Sie neu
Sie sollten nun in der Lage sein, auf das Verzeichnis Remote-Computer / Home im Verzeichnis Local machine / mnt / devboxhome zuzugreifen. In Nautilus können Sie diesen Ordner in die Leiste Places ziehen
12. Wiederholen
Führen Sie auf dem Remote-Computer dieselben Schritte erneut aus, um das Verzeichnis / home des lokalen Computers freizugeben.