Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธี Mount ไดเรกทอรีระยะไกลใน Linux ด้วย SSHFS

วิธี Mount ไดเรกทอรีระยะไกลใน Linux ด้วย SSHFS

แน่นอนว่าไม่มีความขาดแคลนของโซลูชันเมื่อพูดถึงการซิงค์ไฟล์ระหว่างสองอุปกรณ์ แม้ Google Drive และ Microsoft OneDrive อาจไม่ให้ Linux clients อย่างเป็นทางการ NextCloud และผู้อื่นก็ทำ แต่มันอาจเป็นที่คุณไมไว้ใจบริษัทใหญ่เก็บไฟล์ของคุณ หรือ อาจเป็นว่าคุณต้องการความปลอดภัยมากกว่าที่ NextCloud ให้ ด้วยส่วนประกอบทั้งหมดที่ไปสร้างบางอย่างอย่าง NextCloud โอกาสคือมันมีช่องโหว่ด้านความปลอดภัยที่ยังไม่ถูกค้นพบมากกว่าโซลูชันที่เรียบง่ายกว่า

ทำไมต้องใช้ SSHFS?

จากมุมมองของผู้ใช้ปลายทาง นี่ใช้งานง่าย สะอาด และเรียบง่าย มันยังปลอดภัยมากเพราะพึ่งพา OpenSSH server ที่ผ่านการทดสอบและพิสูจน์แล้ว การเข้ารหัสก็ดีที่สุด คุณสามารถมั่นใจได้ว่าไม่มีใครขโมยไฟล์ของคุณขณะที่อยู่ในระหว่างการถ่ายโอน เซิร์ฟเวอร์ที่ตั้งค่าถูกต้องและอัปเดตแล้ว ที่ฟังเฉพาะการเชื่อมต่อ SSH โดยปกติเป็นไปไม่ได้ที่จะแฮ็กสำหรับผู้โจมตีทุกคนยกเว้นผู้เชี่ยวชาญที่สุด (คิดถึง NSA, security specialists ฯลฯ) และพวกเขาน่าจะไม่อยากได้ไฟล์ของคุณ

ทำไมคุณอาจไม่ต้องการใช้ SSHFS

หากคุณต้องการความเร็วถ่ายโอนที่ดีที่สุด คุณอาจต้องการใช้โซลูชันอื่นอย่าง NFS SSHFS ไม่ได้ช้าที่สุดหากการเชื่อมต่ออินเทอร์เน็ตของคุณคุณภาพสูง แต่ก็ไม่ได้เร็วที่สุดด้วย และหากคุณต้องการถ่ายโอนไดเรกทอรีที่มีไฟล์เล็กๆ หลายร้อยไฟล์ มันจะแย่มาก นอกจากนี้ หากคุณต้องการปรับแต่งการตั้งค่าการแชร์ไฟล์ ตามผู้ใช้แต่ละคนหรือปัจจัยอื่นๆ คุณอาจต้องการซอฟต์แวร์อื่น

สรุป หากทั้งสิ่งที่คุณต้องการคือวิธีง่าย ปลอดภัย ซิงค์ไดเรกทอรีระยะไกลกับท้องถิ่น และไม่ได้รีบเร่ง คุณน่าจะพอใจกับโซลูชันนี้

ติดตั้ง SSHFS

บนการติดตั้งที่พัฒนาจาก Arch Linux ใช้คำสั่งนี้:

sudo pacman -S sshfs

หากคุณอยู่บน distro ที่พัฒนาจาก Fedora ใช้:

sudo dnf install sshfs

บน Debian, Ubuntu และครอบครัว ใช้:

sudo apt install sshfs

สำหรับผู้ที่ใช้ OpenSUSE ให้ใส่คำสั่งนี้:

sudo zypper install sshfs

การตั้งค่าเซิร์ฟเวอร์ (Server Configuration)

หากคุณเช่าเซิร์ฟเวอร์หรือ VPS OpenSSH server daemon ตั้งค่าแล้ว ทำตามขั้นตอนที่แนะนำโดย cloud service provider ของคุณเพื่อตั้งค่า regular user (non-root) บางแห่งให้คุณทำได้โดยตรงจาก web control panel และแม้แต่ให้นำเข้า public key เพื่ออนุญาต SSH access ในกรณีนี้ สร้าง key pairs ในเครื่องท้องถิ่น ด้วยคำสั่ง ssh-keygen หลังจากนั้น นำเข้า public key จาก "/home/your_username/.ssh/id_rsa.pub"

หาก cloud provider ไม่เสนอเครื่องมือนำเข้า SSH public keys อย่างง่าย ทำด้วยตนเอง อย่างน้อย ให้ไม่อนุญาต root login และปิด password logins ใช้ SSH keys เพียงอย่างเดียว: ไม่สามารถ brute-force ได้ เหมือนกับรหัสผ่าน

หากคุณต้องการซิงค์ไฟล์ระหว่างสองคอมพิวเตอร์ที่บ้าน ให้จัดการหนึ่งเป็น server (ติดตั้งแพ็กเกจ openssh-server และตั้งค่า) และอีกหนึ่งเป็น client ขั้นตอนเดียวกันใช้ได้

Mount ไดเรกทอรีระยะไกลในท้องถิ่นด้วย SSHFS

ขั้นแรก สร้างไดเรกทอรีที่จะซิงค์กับฝั่งระยะไกล

mkdir $HOME/sshfs

ต่อไป mount ไดเรกทอรีระยะไกลในท้องถิ่นผ่าน SSHFS แทนที่ "user" ด้วย username จริงที่สร้างบนเซิร์ฟเวอร์ของคุณ และ "203.0.113.1" ด้วยที่อยู่ IP จริงของ instance ระยะไกลของคุณ

sshfs user@203.0.113.1:/home/user $HOME/sshfs

แน่นอน หากคุณไม่ต้องการซิงค์ home directory ทั้งหมดของ user บนฝั่งเซิร์ฟเวอร์ แค่แทนที่ "/home/user" ด้วย "/home/user/some_other_directory" หลังจากสร้างมันบนเซิร์ฟเวอร์แล้ว

เมื่อคุณต้องการ unmount ใช้คำสั่งนี้:

cd && fusermount -u $HOME/sshfs

สรุป

หากคุณต้องการให้ไดเรกทอรีซิงค์กับฝั่งระยะไกลถาวร ให้เพิ่มคำสั่งอย่าง sshfs user@203.0.113.1:/home/user $HOME/sshfs ใน autostart manager ของคุณ graphical manager แต่ละตัวมี autostart configuration manager ต่างกัน โปรดดูคู่มือช่วยเหลือของสภาพแวดล้อมเดสก์ท็อป บางแหล่งแนะนำให้เพิ่ม entry ไปที่ "/etc/fstab" แต่เราแนะนำให้หลีกเลี่ยงนั่น เพราะความล้มเหลวในการ mount ไดเรกทอรีอาจทำให้ระบบของคุณบูทไม่สำเร็จโดยสิ้นเชิง

หวังว่านี้ครอบคลุมความต้องการทั้งหมดของคุณ แตถ้าไม่ครบ คุณสามารถอ่านเกี่ยวกับ command line options เพิ่มเติมในคู่มือ SSHFS ออนไลน์