Podłącz zdalny katalog za pomocą SSH


69

Jak zamontować katalog zdalny, używając SSHgo tak, jakby był to katalog lokalny?

Odpowiedzi:


78

Najpierw zainstaluj moduł:

sudo apt-get install sshfs

Załaduj go do jądra:

sudo modprobe fuse

Ustawianie uprawnień (wersje Ubuntu <16.04):

sudo adduser $USER fuse
sudo chown root:fuse /dev/fuse
sudo chmod +x /dev/fusermount

Teraz utworzymy katalog do zamontowania zdalnego folderu.

Zdecydowałem się utworzyć go w moim katalogu domowym i nazwać go remoteDir.

mkdir ~/remoteDir

Teraz uruchomiłem polecenie, aby go zamontować (mount on home):

sshfs maythux@192.168.xx.xx:/home/maythuxServ/Mounted ~/remoteDir

Teraz powinien być zamontowany:

cd ~/remoteDir
ls -l

Jestem trochę zdezorientowany ... w sshfspoleceniu, myślę, że nazwa lokalnego katalogu mountpoint jest nazwana remoteDir, a kiedy jestem na serwerze ssh, jest katalog, /home/maythuxServ/Mountedktóry nie jest montowany lokalnie i nie mogę powiedzieć, lub nieważne, czy jest zamontowany gdzie indziej?
Volker Siegel

3
Pominąłem niektóre z tych kroków pod 14.04 kiedy użyłem następującej instrukcji: help.ubuntu.com/community/SSHFS
Hemm

4
Nie jest wymagana grupa bezpieczników (Ubuntu 16.04, lis 2017): stackoverflow.com/questions/35635631/ubuntu-15-10-no-fuse-group
Matt Kleinsmith

2
W dniu 18.04 pominąłem pełny 2. blok - ustawianie uprawnień i działa dobrze.
optymista

3
Połowa tej odpowiedzi albo nie działa, albo jest nieaktualna. Proszę rozważyć aktualizację.
Luís de Sousa

18

Skonfiguruj uwierzytelnianie oparte na kluczu ssh

Wygeneruj parę kluczy na lokalnym hoście.

$ ssh-keygen -t rsa

Zaakceptuj wszystkie sugestie, naciskając klawisz Enter.

Skopiuj klucz publiczny do zdalnego hosta:

$ ssh-copy-id -i .ssh/id_rsa.pub user@host

Zainstaluj sshfs

$ sudo apt install sshfs

Zamontuj zdalny katalog

$ sshfs user@host:/remote_directory /local_directory

Nie próbuj dodawać zdalnego fs do / etc / fstab

Lub nie próbuj montować udziałów przez /etc/rc.local.

W obu przypadkach nie będzie działać, ponieważ sieć nie jest dostępna, gdy init czyta / etc / fstab.

Zainstaluj AutoFS

$ sudo apt install autofs

Edytuj /etc/auto.master

Skomentuj następujące wiersze

#+/etc/auto.master.d
#+/etc/auto.master

Dodaj nową linię

/- /etc/auto.sshfs --timeout=30

Zapisz i wyjdź

Edytuj /etc/auto.sshfs

Dodaj nową linię

/local_directory -fstype=fuse,allow_other,IdentityFile=/local_private_key :sshfs\#user@remote_host\:/remote_directory

Nazwa użytkownika zdalnego jest obowiązkowa.

Zapisz i wyjdź

Uruchom autofs w trybie debugowania

$ sudo service autofs stop
$ sudo automount -vf

Obserwuj dzienniki zdalnego serwera ssh

$ ssh user@remote_server
$ sudo tailf /var/log/secure

Sprawdź zawartość lokalnego katalogu

Powinieneś zobaczyć zawartość katalogu zdalnego

Uruchom autofs w trybie normalnym

Zatrzymaj AutoFS działający w trybie debugowania za pomocą CTRL-C.

Uruchom AutoFS w trybie normalnym

$ sudo service autofs start

Cieszyć się

(Testowany na Ubuntu 14.04)


5

Na podstawie moich eksperymentów, jawne utworzenie grupy bezpieczników i dodanie do niej użytkownika NIE jest wymagane do zamontowania systemu plików ssh.

Podsumowując, oto kroki skopiowane z tej strony:

  1. zainstalować sshfs

$ sudo apt-get install sshfs

2. Utwórz lokalny punkt montowania

$ mkdir /home/johndoe/sshfs-path/

3. Zamontuj folder zdalny /remote/pathw/home/johndoe/sshfs-path/

$ sshfs remoteuser@111.222.333.444:/remote/path /home/johndoe/sshfs-path/

  1. I wreszcie, aby umountować ...

$ fusermount -u /home/johndoe/sshfs-path/


3

Zainstaluj sshfs

sudo apt-get install sshfs

Dodaj do fstab:

<USER>@<SERVER_NAME>:<server_path> <local_path> fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/<YOUR_USER_NAME>/.ssh/id_rsa,allow_other,default_permissions,rw,nosuid,nodev,uid=1000,gid=1000,nonempty 0 0
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.