SSHFS - 現在も保守されている SSHFS のフォーク
(github.com/deadbeefsociety)- SSHFS は SFTP を使ってリモートファイルシステムをマウントでき、多くの SSH サーバーでは SFTP アクセスがデフォルトでサポート・有効化されているため、サーバー側での作業なしに利用可能
- deadbeefsociety/sshfs の保守フォークは、SSHFS がもはや放置状態ではなくなったためアーカイブ済みであり、利用対象は libfuse/sshfs
- SSHFS は主要な Linux ディストリビューションに含まれており、複数のシステムで長年にわたる本番利用実績があるが、現在は定期的に活動しているコントリビューターがおらず、既知の問題は bugtracker にある
- 現在のメンテナーは pull request の取り込みと定期リリースを続けているが、影響の大きい問題 への対応以外に開発へ割ける余力はなく、pull request を伴わないバグ報告や致命的ではない問題は応答を受けられない可能性が高い
- 基本的な実行形式は
sshfs [user@]hostname:[directory] mountpointで、一般ユーザーとしての実行が推奨され、mountpoint はそのユーザーが所有している必要がある- ユーザー名を省略するとローカルのユーザー名を使用
- ディレクトリを省略するとリモートのホームディレクトリをマウント
- パスワードが必要な場合は、sshfs が実行する
sshがパスワード入力を要求
-oport=PORTを含む各種 ssh オプションを指定でき、マウント解除には Linux ではfusermount -u mountpoint、BSD と macOS ではumount mountpointを使用- ビルドには libfuse 3.1.0 以上、または libfuse3 互換インターフェース、開発ヘッダー付きの Glib、Meson 0.38 以上、Ninja が必要で、テスト実行には
py.testPython モジュールが必要
1件のコメント
Hacker News のコメント
ユーザー空間で動くものが欲しく、Emacsで問題ないなら、TRAMP “Transparent Remote (file) Access, Multiple Protocol” がある: https://www.gnu.org/software/tramp/
MacBook Pro からサーバー上のファイルにアクセスするときによく使っている
cdしたあと、現在の作業ディレクトリからローカルマシンや別のリモートへファイルをcpでき、逆にローカルから現在のリモート作業ディレクトリへもコピーできることTRAMP を使う前は、リモートへ SSH 接続し、
cdとlsでコピー先を探し、SSH セッションを切ってからscpやrsyncでファイルを移動し、たいていまた SSH で入り直す必要があったdired、eshell、magitも含まれる興味深い。ずっと sshfs は OpenSSH の一部だと思っていたけれど、毎日新しいことを学ぶものだ
Slackware で使っている sshfs も放置状態に見える: https://github.com/libfuse/sshfs
リンク先の引用を見ると、このプロジェクトがその「次の担い手」になるのか気になる
参考までに、Mac で何年も macFUSE + sshfs を使っていたが、今は優れた Mountain Duck というツールだけをインストールして使っている。Finder とマウントポイントから SFTP エンドポイントにアクセスできる
とても良いソフトウェアで、自分には必需品
数か月前にはこのために ExpanDrive/StrongSync を試し、Mountain Duck は今回初めて知った。Cyberduck は気に入っている。これから使ってみるつもりだが、うまく動いているなら他の人のためにそのページを更新してくれるとありがたい。それ以外は満足している顧客だ
sshfs の実装も https://github.com/macos-fuse-t/fuse-t/wiki#sample-filesyste... に載っている
macOS で Libfuse/SSHFS は数年前からかなり扱いづらくなっていて、それで自分も Mountain Duck に移った
sshfs がもうメンテナンスされていないとは残念だ。学校でリモート計算サーバーに Vim プラグインを全部インストールしなくても、自分の大量の Vim プラグインでコードを編集するために sshfs を使っていた
思ったよりシステムがとても滑らかに動いて驚いた
SFTP は良いのに過小評価されているプロトコルだと思う。ファイルツリーを片方からもう片方へ複製するより、双方向にミラーリングするほうが理にかなう場合がある
SSHFS のコードをフォークして調べたあと、関連資料と個人的な考えを https://hackmd.io/@q/sftp-over-ws にまとめて維持している
OpenSSH と GNU lsh のサーバーはいずれも古いプロトコルバージョンしか提供していない。おそらく v2 だろう。この古さは意図的な選択だ: https://marc.info/?l=openssh-unix-dev&m=168488976013498&w=2
技術の組み合わせは少し違うが、しばらく WireGuard 上の NFS をかなり満足して使っている
ファイルシステム機能もより多く実装されているため、
dfのレポートがリモートファイルシステムの使用量を正確に反映するさらに NFSv4 は “delegations” を提供し、期限付きリースの形でファイルの完全な制御権をクライアントに与えられる。最新の NFS クライアントには、リース期間を暗黙に延長する “polite delegations” もある
SSHFS は最小限の設定で「素早く雑に」マウントするにはとても便利
ごく単純な DVFS ストレージユーティリティでファイルを同期してからは、振り返ることがなかった。あちこちに複数のコピーを置くのが好きだ
今は sshfs の機能が必要なときは、主に rclone mount を使っている。性能、安定性、キャッシュオプションがより良い
sshfs にも同じ制限がある可能性はある
残念ながら、このフォークはあまり活発には見えない。最後のコミットは3月で、PRやIssueの動きもほとんどない
これに期待はしない
Nautilus、つまり Ubuntu のファイルエクスプローラーは SFTP フォルダーのマウントに対応している。内部的には
gvfsを使っているようだSFTP はファイル転送に SSH 接続を使うので、SSHFS と比べて UI 上の違いは見なかった
よく覚えていない
Mac OS X で macFUSE/osxfuse と一緒に rclone や sshfs を使ったことがある人はいる?
サーバーごとに小さなスクリプトがある。例えば
mount_fooserver.sh:umount -f ~/mounts/fooserversshfs -o kill_on_unmount,reconnect,allow_other,defer_permissions,direct_io username@server:/ ~/mounts/fooserver -ovolname=foo設定手順はかなり冒険のようで、何度かこれで合っているのかと思ったが、押し切ったらうまく動いた