W przypadku sieci opartych tylko na systemie Linux SSHFS jest natywny, stabilny i bardzo szybki. Mam dwie maszyny Xubuntu (18.04) do udostępniania / folderów domowych przez SSH.
Oto jak skonfigurować to sshfs i automatyczne ponowne połączenie po ponownym uruchomieniu za pomocą fstab bez konieczności podawania hasła. Ogromne podziękowania dla użytkownika błędu serwera kubańczyk za ponowne połączenie po zdalnym zawieszeniu / wznowieniu.
Użyję „Komputer lokalny - surfbox” na komputerze, z którego się łączysz, i „Komputer zdalny - devbox” na komputerze, z którym się łączysz.
Zastąp poniżej „remoteuser” nazwą użytkownika, na którym logujesz się na komputerze zdalnym, a „localuser” nazwą użytkownika, na którym logujesz się na komputerze lokalnym. Aby zweryfikować nazwy użytkownika, wpisz echo $USER
terminal na komputerach zdalnych i lokalnych.
Sprawdź także identyfikator użytkownika i identyfikator grupy, oba powinny mieć wartość 1000.
GroupID: id -g localuser
UserID:id -u localuser
1. Uzyskaj adresy IP komputerów lokalnych i zdalnych.
hostname -I
Użyję 192.168.1.150 dla komputera lokalnego („surfbox”) i 192.168.1.151 dla komputera zdalnego („devbox”)
2. Zainstaluj pakiety na komputerach lokalnych i zdalnych
sudo apt install sshfs fuse ssh
3. Utwórz bezpiecznik grupowy i dodaj do niego localuser
Stworzyć grupę: sudo groupadd fuse
Dodaj lokalizator do grupy: sudo usermod -a -G fuse $user
4. Włącz opcję „allow_other” w konfiguracji bezpiecznika
Będziemy potrzebować tej opcji podczas montażu w fstab
Edytuj za /etc/fuse.conf
pomocą edytora wiersza poleceń. Usuń hashtag wcześniej user_allow_other
i zapisz.
5. Wygeneruj klucze SSH na maszynie lokalnej
Nie podawaj hasła po wyświetleniu monitu . Wystarczy nacisnąć Enter, aby pozostawić puste.
ssh-keygen -t rsa -C youremail@example.com
Klucze są przechowywane w katalogu głównym komputera lokalnego / folderze.s.ssh
6. Przenieś publiczny klucz SSH komputera lokalnego na komputer zdalny
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
Zostaniesz poproszony o podanie hasła dla użytkownika zdalnego na zdalnym komputerze. Klucz publiczny komputera lokalnego jest teraz dodawany do pliku ~ / .ssh / author_keys na komputerze zdalnym.
7. Utwórz katalog w folderze Komputer lokalny / mnt, w którym zostanie zamontowany folder Komputer zdalny / domowy.
Wybierz dowolną nazwę, która ma sens dla Twojego Zdalnego komputera.
sudo mkdir /mnt/devboxhome
8. Zamontuj katalog zdalnej maszyny / domowej z terminala
Składnia dla sshfs to
sshfs [user@]host:[directory] mountpoint [options]
Używamy
sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
przykład: zakładając, że „steve” jest nazwą użytkownika na komputerach lokalnych i zdalnych
sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
Ponieważ przesłałeś publiczny klucz RSA na komputer zdalny, nie powinieneś być proszony o podanie hasła użytkownika zdalnego.
Zostanie wyświetlone ostrzeżenie, że komputer nie jest zaufany, i pojawi się monit, czy należy go dodać. Dodaj komputer zdalny jako zaufany.
9. Weryfikacja: Przeglądaj katalog zdalnej maszyny / domowy
W terminalu na komputerze lokalnym możesz teraz wyświetlić katalog zdalnej maszyny / home w katalogu / mnt / devboxhome
cd /mnt/devboxhome
ls
lub użyj Nautilus do przeglądania katalogu. Wspaniały.
10. Włącz ponowne połączenie po ponownym uruchomieniu
Dodamy wpis w / etc / fstab, aby tak się stało. Będziesz potrzebował twojego identyfikatora lokalnego komputera i identyfikatora grupy - zobacz wprowadzenie, jeśli to przegapiłeś. Edytuj / etc / fstab za pomocą edytora wiersza poleceń i dodaj te dwa wiersze na końcu / etc / fstab
# 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 powoduje, że jądro czeka na połączenie z siecią, dopóki nie spróbuje zamontować katalogu na komputerze zdalnym.
- Ponieważ podczas uruchamiania działamy jako root, musimy określić plik klucza, który jest przechowywany w katalogu osobistym localuser.
- allow_other - użytkownicy inni niż wykonujący rzeczywiste montowanie mogą uzyskać dostęp do zamontowanego systemu plików.
- idmap = użytkownik - tłumaczy tylko UID łączącego użytkownika
- reconnect, ServersLiveInterval, ServerAliveCountMax - ssh wysyła pingi utrzymujące aktywność . Jeśli
ServerAliveCountMax
kolejne pingi nie powiodą się, połącz ponownie.
Użytkownik logujący się jako Steve na komputerach lokalnych i zdalnych miałby:
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
WAŻNE : ukośnik po zdalnym katalogu: steve@192.168.1.151: / home / steve /
zapisz / etc / fstab i ....
11. Uruchom ponownie
Powinieneś być teraz w stanie uzyskać dostęp do zdalnego komputera / katalogu domowego na komputerze lokalnym / mnt / devboxhome W Nautilus możesz przeciągnąć ten folder na pasek Miejsca
12. Powtórz
Ponownie wykonaj te same kroki na komputerze zdalnym, aby udostępnić katalog / home komputera lokalnego.