Đối với mạng chỉ dành cho Linux, tôi thấy SSHFS là bản địa, ổn định và cực kỳ nhanh. Tôi có hai thư mục chia sẻ / máy Xubfox (18.04) qua SSH.
Dưới đây là cách thiết lập sshfs này và tự động kết nối lại sau khi khởi động lại bằng fstab mà không phải cung cấp mật khẩu. Xin chân thành cảm ơn người dùng serverfault kubanchot vì cách kết nối lại sau khi tạm dừng / tiếp tục từ xa.
Tôi sẽ sử dụng "Máy cục bộ - hộp lướt" cho máy tính bạn đang kết nối và "Máy từ xa - devbox" cho máy tính bạn đang kết nối.
Thay thế "remoteuser" bên dưới bằng tên người dùng bạn đăng nhập bằng Remote machine và "localuser" bằng tên người dùng bạn đăng nhập bằng máy Local. Để xác minh tên người dùng nhập echo $USER
vào thiết bị đầu cuối trên máy từ xa & cục bộ.
Ngoài ra, hãy kiểm tra userID och groupID của bạn, cả hai nên là 1000.
GroupID: id -g localuser
ID người dùng:id -u localuser
1. Nhận địa chỉ IP của Máy cục bộ & Từ xa.
hostname -I
Tôi sẽ sử dụng 192.168.1.150 cho Máy cục bộ ('hộp lướt') và 192.168.1.151 cho Máy từ xa ('devbox')
2. Cài đặt gói trên Máy cục bộ và Từ xa
sudo apt install sshfs fuse ssh
3. Tạo một cầu chì nhóm và thêm localuser vào nó
Tạo nhóm: sudo groupadd fuse
Thêm người dùng cục bộ vào nhóm: sudo usermod -a -G fuse $user
4. Kích hoạt "allow_other" trong cấu hình cầu chì
Chúng tôi sẽ cần tùy chọn này khi gắn trong fstab
Chỉnh sửa /etc/fuse.conf
với trình soạn thảo dòng lệnh của bạn. Xóa hashtag trước user_allow_other
và lưu lại.
5. Tạo khóa SSH trên máy cục bộ
Không cung cấp mật khẩu khi được nhắc . Chỉ cần nhấn Enter để để trống.
ssh-keygen -t rsa -C youremail@example.com
Các khóa được lưu trong thư mục /.ssh của máy cục bộ
6. Chuyển khóa SSH công khai của máy cục bộ sang máy Remote
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
Bạn sẽ được nhắc nhập mật khẩu cho người dùng Remote trên máy Remote. Khóa công khai của máy cục bộ hiện được thêm vào tệp ~ / .ssh / ủy quyền_key trên máy Remote.
7. Tạo một thư mục trên thư mục Local machine / mnt nơi bạn sẽ gắn thư mục Remote machine / home.
Chọn bất kỳ tên nào có ý nghĩa cho máy Remote của bạn.
sudo mkdir /mnt/devboxhome
8. Gắn thư mục máy / nhà từ xa từ thiết bị đầu cuối
Cú pháp cho sshfs là
sshfs [user@]host:[directory] mountpoint [options]
chúng tôi sử dụng
sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
ví dụ: giả sử "steve" là tên người dùng trên cả máy Local và Remote
sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
Vì bạn đã chuyển khóa RSA công khai sang Máy từ xa, bạn không nên được nhắc nhập mật khẩu từ xa.
Bạn sẽ nhận được một cảnh báo rằng máy không đáng tin cậy và được nhắc nếu cần thêm. Thêm máy Remote là đáng tin cậy.
9. Xác minh: Duyệt từ xa Máy / thư mục nhà
Trong thiết bị đầu cuối trên Máy cục bộ, giờ đây bạn có thể liệt kê thư mục Máy / nhà từ xa trong / mnt / devboxhome
cd /mnt/devboxhome
ls
hoặc sử dụng Nautilus để duyệt thư mục. Tuyệt quá.
10. Kích hoạt kết nối lại sau khi khởi động lại
Chúng tôi sẽ thêm một mục trong / etc / fstab để thực hiện điều này. Bạn sẽ cần máy Localid của bạn userid och groupid - xem phần giới thiệu nếu bạn bỏ lỡ điều này. Chỉnh sửa / etc / fstab bằng trình chỉnh sửa dòng lệnh của bạn và thêm hai dòng này vào cuối / 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 làm cho kernel chờ cho đến khi mạng hoạt động cho đến khi nó cố gắn kết thư mục trên máy Remote.
- Vì chúng tôi đang chạy bằng root trong khi khởi động, chúng tôi phải chỉ định keyfile được lưu trong thư mục chính của localuser.
- allow_other - người dùng không phải là người thực hiện việc gắn thực tế có thể truy cập hệ thống tệp được gắn.
- idmap = user - chỉ dịch UID của người dùng kết nối
- kết nối lại, ServersLiveInterval, ServerAliveCountMax - ssh gửi ping giữ nguyên. Nếu
ServerAliveCountMax
ping liên tiếp thất bại, kết nối lại.
Một người dùng đăng nhập như steve trên máy Local và Remote sẽ có:
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
QUAN TRỌNG : một dấu gạch chéo sau thư mục từ xa: steve@192.168.1.151: / home / steve /
lưu / etc / fstab và ....
11. Khởi động lại
Bây giờ bạn có thể truy cập thư mục Máy / nhà từ xa trong Máy cục bộ / mnt / devboxhome Trong Nautilus, bạn có thể kéo thư mục này vào thanh Địa điểm
12. Lặp lại
Trải qua các bước tương tự một lần nữa trên máy Remote để làm cho thư mục / home của máy Local được chia sẻ.