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-serveriperf3で回線速度を計測
回線が細いと体感的に極端に遅くなります。
(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 記載 |
