Cập nhật 2016-08-03: Tôi thấy rằng việc cài đặt SSHFS từ https://osxfuse.github.io ổn định hơn phiên bản homebrew, vì một số phụ thuộc cũ (do đó điều này có thể cải thiện trong tương lai).
CAVEAT: Kết nối này cực nhanh khi hoạt động, nhưng thường gặp sự cố sau khi kết thúc kết nối do không dây, ở chế độ chờ.
Giả sử bạn đã cài đặt Homebrew ( làm cho cuộc sống của bạn dễ dàng hơn và có được điều này trước tiên )
Cài đặt SSHFS
brew install sshfs
Kiểm tra thư mục này để xem các hệ thống tệp đã cài đặt: ls /Library/Filesystems
Nếu bạn không thấy osxfusefs.fs
, bạn cần cài đặt nó.
Nhận Cask
brew tap caskroom/cask
Cài đặt OSXFUSE
brew cask install osxfuse
Ngoài ra, thay vì homebrew, hãy sử dụng các phiên bản tải xuống từ
https://osxfuse.github.io/
SSHFS + OSXFUSE đã được cài đặt. Thêm một bước...
autofs
cần mount_*
nhị phân.
/usr/local/bin/sshfs
cũng nên có sẵn như mount_sshfs
, vì vậy:
Liệt kê của bạn mount_*
với
compgen -c | grep ^mount
HOẶC LÀ
ls /sbin | grep mount
Nếu bạn không thấy mount_sshfs, bạn cần thực hiện bước này. Đây là một bước quan trọng vì nó dễ bị lãng quên và có thể tạo ra đau đầu.
sudo ln -s $(which sshfs) /sbin/mount_sshfs
Thêm Tự động khởi động tại Boot Daemon trong /Library/LaunchDaemons/
Tập tin có thể được gọi là:
Bạn cần chạy cái này ở mỗi lần khởi động cho phần mở rộng kernel:
/bin/bash -c "/Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs; /usr/sbin/sysctl -w osxfuse.tunables.allow_other=1"
Vì vậy, tạo một tệp dịch vụ mới:
/Library/LaunchDaemons/load.osxfusefs.tunables.plist
Nội dung:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>sysctl</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>/Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs; /usr/sbin/sysctl -w osxfuse.tunables.allow_other=1</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Tải với launchctl
(launchd) cho lần khởi động tiếp theo, đó là phiên bản Mac OS X của systemctl
(systemd)
launchctl load /Library/LaunchDaemon/load.osxfusefs.tunables.plist
Thiết lập auto_master và auto_sshfs
Giả định sau đây bạn có thể ssh vào máy chủ của mình bằng khóa bảo mật (không yêu cầu mật khẩu).
/ etc / auto_master
/mnt/sshfs auto_sshfs -nosuid
/ etc / auto_sshfs
Bạn có thể sử dụng các thông số thường đến sau khi -o
ở sshfs -o
tùy thuộc vào tình hình của bạn.
- idmap = user: cài đặt mặc định. vì uid và gid của bạn có thể khác nhau giữa các hệ điều hành, bạn chỉ có thể ánh xạ người dùng được sử dụng trong người dùng @ ip: tới người dùng (máy khách) cục bộ của bạn. Nhóm này sẽ bị bỏ qua trong trường hợp này (có nghĩa là các thư mục chưa thuộc quyền sở hữu của bạn cấp cho bạn quyền đọc trên nhóm phía máy chủ có thể không đọc được cục bộ - ở phía máy khách)
HOẶC LÀ
uid = YOUUSERID, gid = YOUGROUPID: chỉ cần nhập id YOUUSER để lấy số. Điều này sẽ chỉ ánh xạ tất cả các tệp từ mount đến tổ hợp người dùng / nhóm này. Điều này sẽ cho phép bạn đọc tất cả các tập tin. Tôi nghĩ rằng bất kỳ tệp / thư mục mới nào bạn tạo sẽ kế thừa cài đặt ô mặc định cho bất kỳ thư mục nào bạn gắn kết.
allow-other: Tôi sử dụng cái này, nhưng rất rủi ro vì bất kỳ người dùng nào duyệt mount sẽ xem mount bằng cách sử dụng thông tin đăng nhập được sử dụng khi kết nối.
liệt kê tất cả các tham số với man sshfs
và đọc xem từng tham số sau mỗi-o
thay thế:
- NGƯỜI BẠN với tên người dùng của bạn và
- RIÊNG TƯ cho khóa của bạn, ví dụ id_ed25519
- ip với địa chỉ IP hoặc tên máy chủ của bạn
Nội dung
Quan trọng là tham số reconnect
, nếu không, bất cứ khi nào bạn mất kết nối (như đi ngủ), Finder sẽ bị sập.
Thay thế
- $ (id -u) với id thực tế của bạn trên máy khách
- $ (id -g) với id nhóm thực của bạn trên máy khách
Thật không may, bạn không thể thực thi mọi thứ trong autofs như id -u
NameOfMountThatGetsIgnored -fstype=sshfs,port=22,reconnect,uid=$(id -u),gid=$(id -g),follow_symlinks,allow_other,IdentityFile=/Users/YOURUSER/.ssh/PRIVATEKEY,volname="NameOfMount" YOURUSER@ip:/path/on/server
Kiểm tra
df -Ph /path/to/mount
Liệt kê các hệ thống tập tin gắn
lsvfs
Liệt kê tất cả các gắn kết
mount