เมานต์รีโมตไดเร็กทอรีโดยใช้ SSH


69

วิธีเมาท์รีโมตไดเร็กทอรีที่ใช้SSHเพื่อให้พร้อมใช้งานเหมือนกับว่าเป็นโลคัลไดเร็กทอรีหรือไม่?

คำตอบ:


78

ก่อนติดตั้งโมดูล:

sudo apt-get install sshfs

โหลดไปที่เคอร์เนล:

sudo modprobe fuse

การตั้งค่าการอนุญาต (Ubuntu version <16.04):

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

ตอนนี้เราจะสร้างไดเรกทอรีเพื่อติดตั้งโฟลเดอร์ระยะไกล

remoteDirฉันเลือกที่จะสร้างมันขึ้นมาในไดเรกทอรีบ้านของฉันและเรียกมันว่า

mkdir ~/remoteDir

ตอนนี้ฉันรันคำสั่งเพื่อติดตั้ง (ติดตั้งที่บ้าน):

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

ตอนนี้มันควรจะติดตั้ง:

cd ~/remoteDir
ls -l

ฉันสับสนเล็กน้อย ... ในsshfsคำสั่งฉันคิดว่าชื่อโลคัล mountpoint มีชื่อremoteDirและเมื่อฉันอยู่บน sere serever มี dir /home/maythuxServ/Mountedที่ไม่ได้ติดตั้งแบบโลคัลและฉันไม่สามารถบอกได้หรือ สนใจไม่ว่าจะติดตั้งที่อื่นหรือไม่
Volker Siegel

3
ฉันข้ามขั้นตอนเหล่านี้ต่ำกว่า 14.04 เมื่อฉันใช้คำแนะนำต่อไปนี้: help.ubuntu.com/community/SSHFS
Hemm

4
ไม่จำเป็นต้องมีกลุ่มฟิวส์ (Ubuntu 16.04, พ.ย. 2017): stackoverflow.com/questions/35635631/ubuntu-15-10-no-fuse-group
Matt Kleinsmith

2
ในวันที่ 18.04 ฉันข้ามบล็อก 2nd เต็ม - ตั้งค่าการอนุญาตและใช้งานได้ดี
optimist

3
ครึ่งหนึ่งของคำตอบนี้ใช้ไม่ได้หรือล้าสมัย โปรดพิจารณาอัปเดต
Luís de Sousa

18

กำหนดค่าการพิสูจน์ตัวตนโดยใช้คีย์ ssh

สร้างคู่ของคีย์บนโลคัลโฮสต์

$ ssh-keygen -t rsa

ยอมรับความแออัดทั้งหมดด้วยปุ่ม Enter

คัดลอกกุญแจสาธารณะไปยังโฮสต์ระยะไกล:

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

ติดตั้ง sshfs

$ sudo apt install sshfs

ติดตั้งไดเรกทอรีระยะไกล

$ sshfs user@host:/remote_directory /local_directory

อย่าพยายามเพิ่ม remote fs ไปยัง / etc / fstab

หรืออย่าพยายามเมาท์แชร์ผ่าน /etc/rc.local

ในทั้งสองกรณีจะไม่ทำงานเนื่องจากเครือข่ายไม่พร้อมใช้งานเมื่อ init อ่าน / etc / fstab

ติดตั้ง AutoFS

$ sudo apt install autofs

แก้ไข /etc/auto.master

ใส่เครื่องหมายความคิดเห็นในบรรทัดต่อไปนี้

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

เพิ่มบรรทัดใหม่

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

บันทึกและออก

แก้ไข /etc/auto.sshfs

เพิ่มบรรทัดใหม่

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

ชื่อผู้ใช้ระยะไกลเป็นข้อบังคับ

บันทึกและออก

เริ่ม autofs ในโหมดแก้ไขข้อบกพร่อง

$ sudo service autofs stop
$ sudo automount -vf

สังเกตบันทึกของเซิร์ฟเวอร์ ssh ระยะไกล

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

ตรวจสอบเนื้อหาของโลคัลไดเร็กทอรี

คุณควรเห็นเนื้อหาของรีโมตไดเร็กทอรี

เริ่มการป้อนอัตโนมัติในโหมดปกติ

หยุด AutoFS ทำงานในโหมดแก้ไขข้อบกพร่องด้วย CTRL-C

เริ่ม AutoFS ในโหมดปกติ

$ sudo service autofs start

สนุก

(ทดสอบบน Ubuntu 14.04)


5

จากการทดลองของฉันการสร้างกลุ่มฟิวส์และเพิ่มผู้ใช้ของคุณลงในกลุ่มไม่จำเป็นต้องเชื่อมต่อกับระบบไฟล์ ssh

เพื่อสรุปนี่คือขั้นตอนที่คัดลอกมาจากหน้านี้:

  1. ติดตั้ง sshfs

$ sudo apt-get install sshfs

2. สร้างจุดเชื่อมต่อภายใน

$ mkdir /home/johndoe/sshfs-path/

3. ติดตั้งรีโมตโฟลเดอร์/remote/pathเป็น/home/johndoe/sshfs-path/

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

  1. และในที่สุดก็เพื่อติดตั้ง ...

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


3

ติดตั้ง sshfs

sudo apt-get install sshfs

เพิ่มใน 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.