Cách mount thư mục từ xa trong Linux với SSHFS

Trên Internet chắc chắn không thiếu các giải pháp đồng bộ hóa file giữa hai thiết bị. Google Drive, Microsoft OneDrive, NextCloud, v.v... có thể không cung cấp cho bạn các client Linux chính thức. Nhưng có lẽ bạn không mấy tin tưởng một tập đoàn lớn trong việc lưu trữ các file quan trọng của mình. Hoặc, có thể, bạn muốn mức bảo mật cao hơn so với những gì NextCloud cung cấp, vì nhiều khả năng có những lỗ hổng bảo mật chưa được khám phá đang tồn tại.

Tại sao nên sử dụng SSHFS?

Từ góc độ người dùng cuối, SSHFS là một giải pháp đơn giản và rất dễ sử dụng. SSHFS cũng cực kỳ bảo mật vì nó phụ thuộc vào máy chủ OpenSSH đã được kiểm chứng. Khả năng mã hóa của SSHFS cũng rất đỉnh cao, vì vậy bạn có thể yên tâm rằng không ai có thể đánh cắp các file trong quá trình chuyển. Một máy chủ cập nhật được cấu hình chính xác, chỉ lắng nghe các kết nối SSH, thường không thể bị bẻ khóa, trừ khi kẻ tấn công đến từ NSA hay là một chuyên gia bảo mật, v.v... (nhưng có lẽ họ cũng chả muốn lấy các file của bạn để làm gì cả).

Tại sao bạn không muốn sử dụng SSHFS?

Nếu muốn tốc độ truyền tốt nhất có thể, bạn có thể sử dụng các giải pháp khác như NFS. SSHFS không phải là tùy chọn chậm nhất, nếu kết nối Internet của bạn có chất lượng cao, nhưng nó cũng không phải là cách nhanh nhất. Và nếu bạn muốn chuyển các thư mục chứa hàng trăm file nhỏ, nhiệm vụ này trở nên thực sự khủng khiếp. Ngoài ra, nếu muốn tinh chỉnh cài đặt chia sẻ file, dựa trên từng người dùng hoặc những yếu tố khác, bạn có thể muốn sử dụng một phần mềm khác.

Tóm lại, nếu tất cả những gì bạn cần là một cách dễ dàng, an toàn và nhanh chóng để đồng bộ hóa thư mục từ xa với thư mục cục bộ, có lẽ bạn sẽ hài lòng với khi sử dụng SSHFS.

Cài đặt SSHFS

Trên các cài đặt dựa trên Arch Linux, hãy sử dụng lệnh sau:

sudo pacman -S sshfs

Nếu bạn sử dụng một bản phân phối dựa trên Fedora, hãy sử dụng lệnh sau:

sudo dnf install sshfs

Trên Debian và Ubuntu, hãy sử dụng lệnh:

sudo apt install sshfs

Đối với những người sử dụng OpenSUSE, hãy nhập lệnh sau:

sudo zypper install sshfs

Cấu hình máy chủ

Nếu bạn thuê một máy chủ hoặc VPS, OpenSSH server daemon đã được cấu hình. Thực hiện theo các bước được nhà cung cấp dịch vụ đám mây đề xuất để cấu hình người dùng thông thường (không phải root). Một số nhà cung cấp cho phép bạn làm điều này trực tiếp từ bảng điều khiển web và thậm chí cho phép bạn nhập public key để truy cập SSH. Trong trường hợp này, hãy tạo các cặp key cục bộ bằng lệnh ssh-keygen. Sau đó, nhập public key từ /home/your_username/.ssh/id_rsa.pub.

Nếu nhà cung cấp đám mây không cung cấp một công cụ để dễ dàng nhập các public key SSH, hãy thực hiện việc này theo cách thủ công. Ít nhất, không cho phép đăng nhập root và vô hiệu hóa đăng nhập mật khẩu. Thay vào đó, chỉ sử dụng các SSH key vì chúng không thể bị tấn công brute-force, như trường hợp mật khẩu.

Nếu bạn muốn đồng bộ hóa các file giữa hai máy tính tại nhà, chỉ cần coi một cái là máy chủ (cài đặt gói openssh-server và cấu hình) và coi máy tính còn lại là máy khách, sau đó áp dụng các bước tương tự.

Mount một thư mục từ xa cục bộ với SSHFS

Đầu tiên, tạo một thư mục sẽ được đồng bộ hóa với thiết bị từ xa.

mkdir $HOME/sshfs

Tiếp theo, mount thư mục từ xa cục bộ thông qua SSHFS. Thay thế user bằng tên người dùng thực tế được tạo trên máy chủ và 203.0.113.1 bằng tên địa chỉ IP thực tế của thiết bị từ xa.

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

Tất nhiên, nếu bạn không muốn đồng bộ hóa toàn bộ thư mục chính của người dùng ở phía máy chủ, chỉ cần thay thế /home/user bằng /home/user/some_other_directory sau khi bạn tạo nó trên máy chủ.

Khi bạn muốn unmount, hãy sử dụng lệnh này:

cd && fusermount -u $HOME/sshfs

Nếu bạn muốn một thư mục đồng bộ hóa vĩnh viễn với thiết bị từ xa, hãy thêm một lệnh như sshfs user@203.0.113.1:/home/user $HOME/sshfs trong trình quản lý tự khởi động. Mỗi trình quản lý đồ họa có một trình quản lý cấu hình tự khởi động khác nhau, vì vậy hãy tham khảo hướng dẫn trợ giúp về môi trường desktop bạn đang sử dụng. Một số nguồn khuyến nghị nên thêm /etc/fstab, nhưng bạn nên tránh điều đó, vì việc thất bại khi mount thư mục có thể khiến hệ thống của bạn không khởi động được hoàn toàn.

Hy vọng bài viết này hữu ích cho bạn. Nếu cần, bạn có thể tham khảo thêm liên kết sau:

https://linux.die.net/man/1/sshfs

Chúc bạn thực hiện thành công!

Thứ Ba, 18/06/2019 11:30
52 👨 114