Trang chủHướng dẫnCách sử dụng SSHFS để gắn kết hệ thống tập tin từ xa qua SSH

Cách sử dụng SSHFS để gắn kết hệ thống tập tin từ xa qua SSH

CyStack blog 6 phút để đọc
CyStack blog02/06/2025
Reading Time: 6 minutes

Việc truyền tệp qua kết nối SSH, thông qua các công cụ như SFTP hoặc SCP, là phương pháp phổ biến để di chuyển một lượng dữ liệu nhỏ giữa các máy chủ. Tuy nhiên, trong một số trường hợp, bạn có thể cần chia sẻ toàn bộ thư mục, thậm chí là cả hệ thống tập tin giữa hai môi trường từ xa. Dù điều này có thể được thực hiện thông qua các giao thức như SMB hoặc NFS, nhưng cả hai đều yêu cầu thêm các thành phần phụ trợ, thể tiềm ẩn rủi ro bảo mật, cũng như gây ra một số chi phí vận hành không mong muốn.

Một giải pháp thay thếđơn giản và hiệu quả hơn là sử dụng SSHFS – công cụ cho phép bạn gắn kết (mount) thư mục từ xa chỉ bằng kết nối SSH. Cách làm này ưu điểm lớn không cần cấu hình bổ sung tự động kế thừa quyền truy cập của người dùng SSH trên hệ thống từ xa. SSHFS đặc biệt hữu ích trong trường hợp bạn cần truy cập đọc tương tác từng tệp trong một tập dữ liệu lớn.

Điều kiện tiên quyết

  • Hai máy chủ Linux được cấu hình cho phép truy cập SSH giữa chúng. Trong đó, một máy thể máy cục bộ thay máy chủ trên nền tảng đám mây.
  • Bạn có thể thực hiện điều này bằng cách làm theo hướng dẫn thiết lập máy chủ ban đầu của chúng tôi, bằng cách kết nối trực tiếp từ máy này sang máy kia qua SSH

Cách gắn các thư mục từ xa với SSHFS

Bước 1: Cài đặt SSHFS

SSHFS có sẵn trong hầu hết các kho phần mềm của các bản phân phối Linux. Trên Ubuntu, bạn có thể cài đặt bằng apt.

Đầu tiên, sử dụng apt update để làm mới nguồn cấp:

sudo apt update

Sau đó, sử dụng lệnh apt install để cài đặt gói sshfs.

sudo apt install sshfs

Lưu ý:

SSHFS cũng có thể được cài đặt trên macOS hoặc Windows thông qua các thư viện hệ thống tập tin như FUSE, giúp các nền tảng này tương thích với môi trường Linux. Mặc dù các khái niệm và cách kết nối tương tự như hướng dẫn này, bạn có thể cần sử dụng các giao diện cấu hình khác nhau hoặc cài đặt thư viện bên thứ ba. Hướng dẫn này sẽ chỉ đề cập đến SSHFS trên Linux, nhưng bạn hoàn toàn có thể điều chỉnh các bước này để áp dụng triển khai FUSE trên Mac hoặc Windows.

Bước 2 – Gắn kết hệ thống tập tin từ xa

Trong môi trường Linux, để gắn kết một hệ thống tập tin từ xa, trước tiên bạn cần tạo một thư mục trống dùng làm điểm gắn. Hầu hết các môi trường Linux đều có một thư mục mặc định mà bạn có thể sử dụng là thư mục /mnt.

Lưu ý: Trên Windows, hệ thống tập tin từ xa đôi khi được gắn kết với ổ đĩa riêng của chúng như G:, và trên Mac, chúng thường được gắn kết trong thư mục /Volumes.

Tạo một thư mục con trong /mnt có tên là droplet bằng lệnh mkdir:

sudo mkdir /mnt/droplet

Sau đó, dùng lệnh sshfs để gắn kết thư mục từ xa:


sudo sshfs -o allow_other,default_permissionssammy@your_other_server:~/ /mnt/droplet
sudo sshfs -o allow_other,default_permissions @:~/ /mnt/droplet
`sammy
your_other_server`

Các tùy chọn cho lệnh này hoạt động như sau:

  • -o đứng trước các tùy chọn gắn kết khác nhau (điều này giống như khi chạy lệnh mount thông thường đối với các gắn kết đĩa không phải SSH). Trong trường hợp này, bạn đang sử dụng lệnh allow_other để cho phép những người dùng khác có quyền truy cập vào gắn kết này (để nó hoạt động giống như một gắn kết đĩa thông thường, vì sshfs ngăn chặn điều này theo mặc định) và default_permissions (để nó sử dụng các quyền hệ thống tệp thông thường).
  • sammy@your_other_server:~/ cung cấp đường dẫn đầy đủ đến thư mục từ xa, bao gồm tên người dùng từ xa, sammy, máy chủ từ xa, your_other_server và đường dẫn, trong trường hợp này là ~/ cho thư mục gốc của người dùng từ xa. Nó sử dụng cú pháp giống như SSH hoặc SCP.
  • /mnt/droplet: đường dẫn đến thư mục cục bộ đang được sử dụng làm điểm gắn kết.

Nếu gặp lỗi Connection reset by peer, hãy đảm bảo rằng bạn đã sao chép khoá SSH vào máy chủ từ xa. sshfs sử dụng kết nối SSH thông thường ở chế độ nền và nếu đây là lần đầu tiên bạn kết nối với hệ thống từ xa qua SSH, bạn có thể được nhắc chấp nhận dấu vân tay khóa của máy chủ từ xa.

Output
The authenticity of host '164.90.133.64 (164.90.133.64)' can't be established.
ED25519 key fingerprint is SHA256:05SYulMxeTDWFZtf3/ruDDm/3mmHkiTfAr+67FBC0+Q.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Lưu ý: Nếu bạn cần gắn thư mục từ xa bằng SSHFS mà không cần quyền sudo, bạn có thể tạo nhóm người dùng có tên là fuse trên máy cục bộ của mình bằng cách sử dụng sudo groupadd fuse, sau đó thêm người dùng cục bộ vào nhóm đó bằng cách sử dụng sudo usermod -a -G fuse sammy.

Bạn có thể sử dụng ls để liệt kê các tệp trong thư mục được gắn kết để xem chúng có khớp với nội dung của thư mục từ xa hay không:

ls /mnt/droplet
Output
remote_file1 remote_file2

Từ đây, bạn có thể làm việc với các tệp trên máy chủ từ xa như thể nó là một thiết bị vật lý được gắn vào máy cục bộ của bạn. Ví dụ, nếu bạn tạo một tệp trong thư mục /mnt/droplet, tệp đó sẽ xuất hiện trên máy chủ ảo của bạn. Tương tự như vậy, bạn có thể sao chép các tệp vào hoặc ra khỏi thư mục /mnt/droplet và chúng sẽ được tải lên hoặc từ máy chủ từ xa của bạn ở chế độ nền.

Điều cần lưu ý là lệnh mount chỉ gắn một đĩa từ xa cho phiên hiện tại của bạn. Nếu máy chủ ảo hoặc máy cục bộ bị tắt nguồn hoặc khởi động lại, bạn sẽ cần sử dụng cùng một quy trình để gắn lại.

Nếu bạn không cần gắn kết này nữa, bạn có thể hủy gắn kết bằng lệnh umount:

sudo umount /mnt/droplet

Ở bước cuối cùng, hãy xem qua ví dụ về cách gắn kết cấu hình cố định.

Bước 3 – Gắn kết vĩnh viễn hệ thống tập tin từ xa

Tương tự như các ổ đĩa khác, bạn có thể sử dụng cấu hình SSHFS để gắn kết vĩnh viễn bằng cách chỉnh sửa tập tin /etc/fstab.

Sử dụng lệnh nano hoặc trình soạn thảo văn bản yêu thích của bạn, mở /etc/fstab:

sudo nano /etc/fstab

Thêm dòng sau vào cuối tập tin:

/etc/fstab
…
sammy@your_other_server:~/ /mnt/droplet fuse.sshfs noauto,x-systemd.automount,_netdev,reconnect,identityfile=/home/sammy/.ssh/id_rsa,allow_other,default_permissions 0 0

Gắn kết cố định thường yêu cầu một số tùy chọn khác nhau để đảm bảo chúng hoạt động như mong đợi. Chúng hoạt động như sau:

  • sammy@your_other_server:~/: đường dẫn từ xa như trước.
  • /mnt/droplet: thư mục gắn kết cục bộ.
  • fuse.sshfs chỉ định trình điều khiển được sử dụng để gắn kết thư mục từ xa này.
  • noauto,x-systemd.automount,_netdev,reconnect là một tập hợp các tùy chọn hoạt động cùng nhau để đảm bảo rằng gắn kết cố định vào ổ đĩa mạng hoạt động bình thường trong trường hợp kết nối mạng bị ngắt khỏi máy cục bộ hoặc máy từ xa.
  • identityfile=/home/sammy/.ssh/id_rsa chỉ định đường dẫn đến khóa SSH cục bộ để có thể tự động gắn kết thư mục từ xa. Lưu ý rằng ví dụ này giả định rằng cả tên người dùng cục bộ và từ xa của bạn đều là sammy. Cần phải chỉ định điều này vì /etc/fstab thực sự chạy dưới dạng root và cần xác định cấu hình SSH thuộc tên người dùng nào để kiểm tra khóa được máy chủ từ xa tin cậy.
  • allow_other,default_permissions sử dụng cùng quyền từ lệnh mount ở trên.
  • 0 0 biểu thị rằng hệ thống tệp từ xa không bao giờ bị hỏng hoặc được xác thực bởi máy cục bộ trong trường hợp có lỗi. Các tùy chọn này có thể khác nhau khi gắn kết đĩa cục bộ.

Lưu và đóng tệp: Nếu bạn đang sử dụng nano, hãy nhấn Ctrl+X, sau đó nhấn Y rồi ENTER. Bạn có thể kiểm tra cấu hình /etc/fstab bằng cách khởi động lại máy cục bộ của mình, ví dụ bằng cách sử dụng sudo reboot now và xác minh rằng gắn kết được tạo lại tự động.

Lưu ý:

Việc gắn kết SSHFS vĩnh viễn không phải lúc nào cũng phổ biến, vì đặc thù kết nối SSH thường phù hợp hơn với các giải pháp tạm thời. Tuy nhiên, nếu bạn cần một cách nhanh gọn và có thể cấu hình như ổ đĩa thật, SSHFS vẫn là lựa chọn linh hoạt và đáng tin cậy. Nó hoạt động như một trình điều khiển hệ thống tệp đầy đủ, cho phép bạn cấu hình trong /etc/fstab giống như bất kỳ ổ đĩa nào khác và sử dụng khi cần thiết. Chỉ cần đảm bảo rằng bạn không vô tình chia sẻ nhiều tài nguyên hơn mức cần thiết từ máy chủ từ xa.

Kết luận

Trong hướng dẫn này, bạn đã học được cách sử dụng SSHFS để gắn kết một hệ thống tập tin từ xa qua SSH. Mặc dù không phải là giải pháp tối ưu cho các hệ thống sản xuất lớn, nhưng SSHFS rất hữu dụng khi bạn cần truy cập nhanh, linh hoạt mà không cần cài đặt phức tạp.

Nếu bạn đang tìm kiếm giải pháp chia sẻ tập tin giữa nhiều máy chủ một cách chuyên nghiệp hơn, hãy khám phá các dịch vụ lưu trữ đối tượng có hỗ trợ gắn kết đồng thời.

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.