สำหรับเครือข่าย Linux เท่านั้นฉันพบว่า SSHFS มีความเสถียรและรวดเร็วอย่างยิ่ง ฉันมีสองเครื่อง Xubuntu (18.04) การแชร์ / โฮมโฟลเดอร์ผ่าน SSH
ต่อไปนี้เป็นวิธีตั้งค่าsshfsและเชื่อมต่อใหม่โดยอัตโนมัติหลังจากรีบูตโดยใช้fstabโดยไม่ต้องระบุรหัสผ่าน ขอบคุณมากสำหรับผู้ใช้เซิร์ฟเวอร์ kubanczykสำหรับวิธีการเชื่อมต่ออีกครั้งหลังจากการระงับ / ดำเนินการจากระยะไกล
ฉันจะใช้ "Local machine - surfbox" สำหรับคอมพิวเตอร์ที่คุณเชื่อมต่อและ "Remote machine - devbox" สำหรับคอมพิวเตอร์ที่คุณกำลังเชื่อมต่อ
แทนที่ "remoteuser" ด้านล่างด้วยชื่อผู้ใช้ที่คุณลงชื่อเข้าใช้ด้วยบนเครื่องระยะไกลและ "localuser" ด้วยชื่อผู้ใช้ที่คุณเข้าสู่ระบบด้วยเครื่อง Local เพื่อตรวจสอบชื่อผู้ใช้พิมพ์echo $USER
ใน terminal บนเครื่องระยะไกลและท้องถิ่น
นอกจากนี้ตรวจสอบ userID ของคุณและ groupID ทั้งคู่ควรเป็น 1,000
GroupID: id -g localuser
หมายเลขผู้ใช้:id -u localuser
1. รับที่อยู่ IP ของเครื่องท้องถิ่นและระยะไกลของคุณ
hostname -I
ฉันจะใช้ 192.168.1.150 สำหรับ Local Machine ('surfbox') และ 192.168.1.151 สำหรับ Remote Machine ('devbox')
2. ติดตั้งแพคเกจบนเครื่อง Local และ Remote
sudo apt install sshfs fuse ssh
3. สร้างฟิวส์กลุ่มและเพิ่มผู้ใช้โลคัล
สร้างกลุ่ม: sudo groupadd fuse
เพิ่ม Localuser ให้กับกลุ่ม: sudo usermod -a -G fuse $user
4. เปิดใช้งาน "allow_other" ในการกำหนดค่าฟิวส์
เราจะต้องใช้ตัวเลือกนี้เมื่อติดตั้งใน fstab
แก้ไข/etc/fuse.conf
ด้วยเครื่องมือแก้ไขบรรทัดคำสั่งของคุณ นำแฮชแท็กออกก่อนuser_allow_other
และบันทึก
5. สร้างคีย์ SSH บน Local Machine
อย่าให้รหัสผ่านเมื่อได้รับแจ้ง เพียงกด Enter เพื่อเว้นว่าง
ssh-keygen -t rsa -C youremail@example.com
คีย์จะถูกเก็บไว้ในโฟลเดอร์ home / home ไดเรกทอรีท้องถิ่น /.ssh
6. โอนคีย์ SSH สาธารณะของเครื่องท้องถิ่นไปยังเครื่องระยะไกล
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
คุณจะได้รับแจ้งให้ใส่รหัสผ่านสำหรับผู้ใช้ระยะไกลบนเครื่องระยะไกล ขณะนี้เพิ่มรหัสสาธารณะของเครื่องโลคัลลงในไฟล์ ~ / .ssh / authorized_keys บนเครื่องระยะไกล
7. สร้างไดเรคทอรี่ในโฟลเดอร์ Local machine / mnt ที่คุณจะเมาท์ Remote machine / home folder
เลือกชื่อที่เหมาะสมสำหรับเครื่องรีโมตของคุณ
sudo mkdir /mnt/devboxhome
8. ติดตั้ง Remote machine / home directory จากเทอร์มินัล
ไวยากรณ์สำหรับ sshfs คือ
sshfs [user@]host:[directory] mountpoint [options]
เราใช้
sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
ตัวอย่าง: สมมติว่า "สตีฟ" เป็นชื่อผู้ใช้ทั้งบนเครื่องโลคอลและรีโมท
sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
เนื่องจากคุณโอนคีย์ RSA สาธารณะไปยังเครื่องระยะไกลคุณไม่ควรได้รับแจ้งให้ใส่รหัสผ่านของผู้ใช้รีโมต
คุณจะได้รับคำเตือนว่าเครื่องไม่น่าเชื่อถือและได้รับแจ้งหากควรเพิ่ม เพิ่มเครื่องระยะไกลเป็นที่เชื่อถือได้
9. ยืนยัน: เรียกดูรีโมต Machine / home directory
ในเทอร์มินัลบน Local machine ตอนนี้คุณสามารถแสดงรายการ Remote machine / home directory ภายใต้ / mnt / devboxhome
cd /mnt/devboxhome
ls
หรือใช้ Nautilus เพื่อเรียกดูไดเรกทอรี ยิ่งใหญ่
10. เปิดใช้งานการเชื่อมต่อใหม่หลังจากรีบูต
เราจะเพิ่มรายการใน / etc / fstab เพื่อให้สิ่งนี้เกิดขึ้น คุณจะต้องใช้หมายเลขประจำเครื่องในเครื่องของคุณและดูคำแนะนำหากคุณพลาด แก้ไข / etc / fstab ด้วยตัวแก้ไขบรรทัดคำสั่งของคุณและเพิ่มสองบรรทัดเหล่านี้ในตอนท้ายของ / 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ทำให้เคอร์เนลรอจนกระทั่งเครือข่ายขึ้นจนกระทั่งพยายามติดตั้งไดเรกทอรีในเครื่องระยะไกล
- เนื่องจากเรารันเป็นรูทระหว่างการบู๊ตเราจึงต้องระบุkeyfileซึ่งเก็บไว้ในโฮมไดเร็กตอรี่ของ localuser
- allow_other - ผู้ใช้อื่นที่ไม่ใช่ผู้ที่กำลังทำการติดตั้งจริงสามารถเข้าถึงระบบไฟล์ที่เมาท์ได้
- idmap = user - แปล UID ของการเชื่อมต่อผู้ใช้เท่านั้น
- เชื่อมต่อใหม่, ServersLiveInterval, ServerAliveCountMax - ssh ส่งการส่ง Ping แบบ keep-alive หากการ
ServerAliveCountMax
ปิงติดต่อกันล้มเหลวให้เชื่อมต่อใหม่
ผู้ใช้ที่ล็อกอินในฐานะ steve บนเครื่อง Local และ Remote จะมี:
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
สำคัญ : เครื่องหมายทับหลังจากรีโมตไดเร็กทอรี: steve@192.168.1.151: / home / steve /
บันทึก / etc / fstab และ ....
11. รีบูต
ตอนนี้คุณควรจะสามารถเข้าถึงรีโมตเครื่อง / โฮมไดเร็กตอรี่ใน Local machine / mnt / devboxhome ใน Nautilus คุณสามารถลากโฟลเดอร์นี้ไปยังแถบสถานที่
12. ทำซ้ำ
ทำตามขั้นตอนเดียวกันอีกครั้งในเครื่องระยะไกลเพื่อสร้าง / home directory ของ Local machine แชร์