Thứ tư, 09/11/2016 | 00:00 GMT+7

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

Trong nhiều trường hợp, việc chuyển các file đến và đi từ một server có thể trở nên phức tạp. Hãy tưởng tượng một tình huống sử dụng phát triển trong đó bạn đang viết mã ứng dụng từ xa và thấy mình đang tải tập lệnh lên server ảo liên tục để kiểm tra. Điều này có thể trở nên khá phức tạp trong một khoảng thời gian rất ngắn. May mắn là có một cách để gắn hệ thống file VPS của bạn vào máy tính local của bạn để bạn có thể áp dụng các thay đổi nhanh chóng và coi server của bạn là bộ nhớ local . Trong bài viết này, ta sẽ hướng dẫn bạn cách thực hiện chính xác điều đó.


Cài đặt SSHFS


Trên Ubuntu / Debian


SSHFS là phần mềm dựa trên Linux cần được cài đặt trên máy tính local của bạn. Trên hệ thống dựa trên Ubuntu và Debian, nó có thể được cài đặt thông qua apt-get.

sudo apt-get install sshfs 

Trên Mac OSX


Bạn có thể cài đặt SSHFS trên Mac OSX. Bạn cần download FUSE và SSHFS từ trang osxfuse

Trên Windows


Để cài đặt SSHFS trong Windows, bạn cần lấy gói win-sshfs mới nhất từ repository mã google. Một liên kết download trực tiếp có thể được tìm thấy bên dưới. Sau khi bạn đã download gói, hãy nhấp đúp để chạy trình cài đặt. Bạn có thể được yêu cầu download các file bổ sung, nếu vậy, trình cài đặt sẽ download .NET Framework 4.0 và cài đặt nó cho bạn.

https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/win-sshfs/win-sshfs-0.0.1.5-setup.exe 

Gắn hệ thống file từ xa


Các hướng dẫn sau sẽ hoạt động cho cả Ubuntu / Debian và OSX. Hướng dẫn dành cho hệ thống Windows có thể tìm thấy ở cuối hướng dẫn.

Để bắt đầu, ta cần tạo một folder local để gắn hệ thống file của server .

sudo mkdir /mnt/server <--replace "server" whatever you prefer 

Bây giờ ta có thể sử dụng sshfs để mount local hệ thống file với lệnh sau. Nếu VPS của bạn được tạo bằng password đăng nhập, lệnh sau sẽ thực hiện thủ thuật. Bạn cần nhập password root của server ảo của bạn trong bước này.

sudo sshfs -o allow_other,default_permissions root@xxx.xxx.xxx.xxx:/ /mnt/server 

Nếu server của bạn được cấu hình để đăng nhập thông qua ủy quyền khóa ssh, bạn cần yêu cầu sshfs sử dụng public key của bạn bằng lệnh sau. Bạn cần nhập passphrase (password bảo vệ) mà bạn đã sử dụng trong quá trình tạo khóa của bạn bằng ssh-keygen.

sudo sshfs -o allow_other,default_permissions,IdentityFile=~/.ssh/id_rsa root@xxx.xxx.xxx.xxx:/ /mnt/server 

Như vậy, bạn có thể làm việc với các file trên server của bạn như thể nó là một thiết bị vật lý được gắn vào máy local của bạn. Ví dụ: nếu bạn di chuyển đến folder / mnt / server trên máy local , bạn có thể tạo một file local và file sẽ xuất hiện trên server ảo của bạn. Tương tự như vậy, bạn có thể sao chép file vào folder / mnt / server và chúng sẽ được tải lên server của bạn ở chế độ nền.

Điều quan trọng cần lưu ý là quá trình này chỉ cung cấp một điểm mount tạm thời cho server của bạn. Nếu server ảo hoặc máy local bị tắt nguồn hoặc khởi động lại, bạn cần sử dụng quy trình tương tự để mount lại.

Ngắt kết nối hệ thống file từ xa


Khi bạn không cần điểm mount nữa, bạn có thể chỉ cần ngắt kết nối nó bằng lệnh

sudo umount /mnt/server 

Mount vĩnh viễn hệ thống file từ xa


SSHFS cũng cho phép cài đặt các điểm mount vĩnh viễn vào hệ thống file từ xa. Điều này sẽ cài đặt một điểm mount sẽ tồn tại thông qua việc khởi động lại cả máy local và server của bạn. Để cài đặt điểm mount vĩnh viễn, ta cần chỉnh sửa file /etc/fstab trên máy local để tự động mount hệ thống file mỗi khi hệ thống được khởi động.

Đầu tiên, ta cần chỉnh sửa file /etc/fstab bằng editor .

sudo nano /etc/fstab 

Cuộn xuống cuối file và thêm mục nhập sau

sshfs#root@xxx.xxx.xxx.xxx:/ /mnt/server 

Lưu các thay đổi vào /etc/fstab và khởi động lại nếu cần.

Cần lưu ý việc gắn vĩnh viễn hệ thống file VPS của bạn local là một rủi ro bảo mật tiềm ẩn. Nếu máy local của bạn bị xâm phạm, nó sẽ cho phép một đường dẫn trực tiếp đến server của bạn. Do đó, không nên cài đặt các giá đỡ cố định trên server production .

Sử dụng Win-SSHFS để gắn hệ thống file từ xa trên Windows


Sau khi chạy chương trình win-sshfs, bạn sẽ thấy một giao diện đồ họa giúp quá trình gắn chia sẻ file từ xa trở nên đơn giản.

  • Bước 1: Nhấp vào nút Thêm ở góc dưới bên trái của cửa sổ.

  • Bước 2: Nhập tên cho phần chia sẻ file trong trường Tên ổ đĩa.

  • Bước 3. Nhập IP của server của bạn vào trường Server .

  • Bước 4. Nhập cổng SSH của bạn. (Để làm cổng 22 trừ khi bạn đã thay đổi cổng SSH theo cách thủ công).

  • Bước 5. Nhập tên user của bạn vào trường Tên user . (Trừ khi bạn đã cài đặt account user theo cách thủ công, bạn sẽ nhập root vào trường này).

  • Bước 6. Nhập password SSH của bạn vào trường password . (Lưu ý trên Windows, bạn cần phải cấu hình server của bạn để đăng nhập bằng password thay vì xác thực ssh-key).

  • Bước 7. Nhập điểm mount mong muốn của bạn vào trường Thư mục. (Nhập / để mount hệ thống file từ folder root . Tương tự, bạn có thể nhập /var/www hoặc ~/ cho folder chính của bạn ).

  • Bước 8. Chọn ký tự ổ đĩa mà bạn muốn Windows sử dụng cho hệ thống file server của bạn .

  • Bước 9. Nhấp vào nút Mount để kết nối với server và mount hệ thống file .

Bây giờ hệ thống file của server ảo của bạn sẽ có sẵn thông qua Máy tính của tôi dưới dạng ký tự ổ đĩa mà bạn đã chọn ở bước 8.

Cách sử dụng điểm mount từ xa


Mount từ xa hoạt động tương tự như bộ lưu trữ được mount local : bạn có thể tạo, sao chép, di chuyển, chỉnh sửa, nén hoặc thực hiện bất kỳ hoạt động hệ thống file nào mà bạn có thể thực hiện trên server , nhưng bạn không thể chạy các chương trình hoặc tập lệnh trên server từ xa.

Một cách sử dụng điển hình của điều này là nếu bạn lưu trữ một trang web trên VPS của bạn và cần áp dụng các thay đổi đối với trang web thường xuyên. Việc gắn hệ thống file local cho phép bạn chạy bất kỳ trình soạn thảo mã, IDE hoặc editor nào bạn muốn chỉnh sửa trang web và bất kỳ thay đổi nào bạn thực hiện sẽ phản ánh trên server ảo ngay khi chúng được thực hiện trên máy local của bạn.

Tương tự, trên các server được sử dụng cho mục đích thử nghiệm của các dự án mã hóa, nó cho phép các sửa đổi mã đơn giản hơn nhiều có thể được kiểm tra ngay lập tức mà không cần phải sửa đổi mã local cũng như từ xa (và loại bỏ sự phức tạp khi tải lên các bản sao file mới cho mã nhỏ thay đổi).


Tags:

Các tin liên quan