sshfs (SSH Filesystem) は、リモートサーバー上のディレクトリをローカルにマウントできる便利な仕組みです。
しかし、実際に利用してみると「マウントできない」「動作が異常に遅い」といった問題に直面することがあります。
この記事では、原因ごとに切り分け・対処方法を整理して解説します。
目次
1. sshfs がマウントできないときの確認ポイント
(1) ssh 接続自体ができない
まずは通常の SSH 接続が可能か確認します。
ssh user@remote-server
- 接続エラー → ネットワーク・ファイアウォール・SSH 設定を確認
- 公開鍵認証の設定や
~/.ssh/config
の記述ミスも見直す
(2) マウント先ディレクトリが存在しない
sshfs では マウント先の空ディレクトリ が必要です。
mkdir -p ~/remote_mount
sshfs user@remote:/path/to/dir ~/remote_mount
存在しないディレクトリを指定するとエラーになります。
(3) fuse / sshfs がインストールされていない
- Ubuntu/Debian 系
sudo apt install sshfs
- RHEL/CentOS 系
sudo yum install fuse-sshfs
fusermount
コマンドが存在するかも確認しましょう。
(4) パーミッションの問題
- ローカルのマウントポイントの権限
- リモートのディレクトリ権限
を確認し、実行ユーザーでアクセスできるかチェックします。
2. sshfs が遅いときの原因と対処
(1) ネットワーク遅延・回線速度
sshfs は SSH トンネルを介して転送するため、ネットワーク品質に大きく依存します。
ping remote-server
iperf3
で回線速度を計測
回線が細いと体感的に極端に遅くなります。
(2) 暗号化アルゴリズムの影響
SSH の暗号化方式が重いと CPU 負荷で遅くなることがあります。
対策例(軽量アルゴリズムの利用)
sshfs -o Ciphers=arcfour user@remote:/path ~/remote_mount
※セキュリティより速度を優先したい場合に限定
(3) SFTP プロトコルの特性
sshfs は SFTP を利用しているため、小さいファイルが大量にあると遅くなります。
対策
rsync
やscp
に切り替えて転送- 大量ファイル用途では sshfs より NFS/Samba の検討も有効
(4) キャッシュオプションを活用する
sshfs にはキャッシュを制御するオプションがあります。
例:属性キャッシュを有効にしてアクセス高速化
sshfs -o cache=yes -o attr_timeout=3600 user@remote:/path ~/remote_mount
(5) DNS 解決が遅い
ホスト名で接続している場合、DNS 解決がボトルネックになっていることもあります。
/etc/hosts
に直接 IP を書く- IP アドレスで接続する
ことで改善する場合があります。
3. 実運用での工夫
-o reconnect
を付けて切断時の自動再接続を有効化- 大容量ファイルコピーは sshfs より rsync を使う
- 頻繁な読み書きが必要なら NFS/Samba を検討
まとめ:原因と対処の対応表
症状 | 主な原因 | 確認方法 | 対処法 |
---|---|---|---|
マウントできない | SSH 接続エラー | ssh user@host | ネットワーク・鍵設定確認 |
マウントできない | マウント先ディレクトリなし | ls ~/mountdir | mkdir -p ~/mountdir |
マウントできない | sshfs/fuse 未導入 | which sshfs | パッケージインストール |
マウントできない | 権限不足 | ls -ld で権限確認 | 実行ユーザーに権限付与 |
動作が遅い | ネットワーク遅延 | ping , iperf3 | ネットワーク改善 |
動作が遅い | 暗号化方式が重い | top で CPU 負荷確認 | 軽量 Cipher 指定 |
動作が遅い | 小さいファイル多数 | ls -l | rsync/NFS/Samba 検討 |
動作が遅い | キャッシュ未設定 | オプション確認 | -o cache=yes |
動作が遅い | DNS 解決遅延 | time ssh user@host | /etc/hosts に IP 記載 |