
SSHFS(SSHファイルシステム)は、SSH接続を介してリモートディレクトリをマウントするためのFUSEに基づくファイルシステムクライアントです。 SSHFSはSSHのサブシステムであるSFTPプロトコルを使用しており、ほとんどのSSHサーバーでデフォルトで有効になっています。
NFSやSambaなどの他のネットワークファイルシステムプロトコルと比較した場合、SSHFSの利点は、サーバー側で追加の構成を必要としないことです。 SSHFSを使用するには、リモートサーバーへのSSHアクセスのみが必要です。
SSHFSはSFTPを使用するため、サーバーとクライアント間で送信されるすべてのデータを暗号化および復号化する必要があります。これにより、NFSと比較してパフォーマンスがわずかに低下し、クライアントとサーバーのCPU使用率が高くなります。
このチュートリアルでは、SSHFSクライアントをLinux、macOS、およびWindowsにインストールする方法と、リモートディレクトリをマウントする方法を示します。
SSHFSのインストール#
SSHFSパッケージはすべての主要なオペレーティングシステムで利用可能であり、インストールは非常に簡単です。
UbuntuおよびDebianへのSSHFSのインストール#
SSHFSは、デフォルトのUbuntuおよびDebianリポジトリから利用できます。パッケージインデックスを更新し、次のように入力してsshfsクライアントをインストールします。
sudo apt update
sudo apt install sshfs
CentOSへのSSHFSのインストール#
CentOSおよびその他のRedHat派生ディストリビューションでは、次のコマンドを実行してsshfsをインストールします。
sudo yum install sshfs
macOSへのSSHFSのインストール#
macOSユーザーは、osxfusesiteまたはHomebrewからFUSEおよびSSHFSパッケージをダウンロードすることにより、SSHFSクライアントをインストールできます。
brew cask install osxfuse
brew install sshfs
WindowsへのSSHFSのインストール#
Windowsユーザーは、WinFspとSSHFS-Winの2つのパッケージをインストールする必要があります。
- WinFsp。
- SSHFS-Win。
リモートファイルシステムのマウント#
次の手順は、すべてのLinuxディストリビューションとmacOSに適用されます。
リモートディレクトリをマウントするには、SSHユーザーがそれにアクセスできる必要があります。 SSHFSマウントコマンドは次の形式を取ります:
sshfs [user@]host:[remote_directory] mountpoint [options]
sshfsコマンドは、SSH構成ファイルを読み取り、ホストごとの設定を使用します。リモートディレクトリが指定されていない場合、デフォルトでリモートユーザーのホームディレクトリになります。
たとえば、「linuxize」という名前のユーザーのホームディレクトリをIPアドレス「192.168.121.121」のリモートホストにマウントするには、最初にマウントポイントとして機能するディレクトリを作成します。これは、任意の場所にすることができます。
mkdir ~/linuxizeremote
次に、sshfsコマンドを使用してリモートディレクトリをマウントします。
sshfs [email protected]:/home/linuxize /home/linuxize/linuxizeremote
ユーザーパスワードの入力を求められます。リモートディレクトリをマウントするたびにパスワードを入力しないようにするには、SSHキーを生成し、パスワードなしのSSHログインを設定します。
これで、ローカルファイルの場合と同じように、リモートサーバーにあるディレクトリとファイルを操作できます。たとえば、新しいファイルやディレクトリを編集、削除、名前変更、または作成できます。
リモートディレクトリを永続的にマウントする場合は、ローカルマシンの/etc/fstab
を編集する必要があります 新しいマウントエントリを追加します。このように、システムが起動すると、リモートディレクトリが自動的にマウントされます。
/etc/fstab
からSSHFSを介してリモートディレクトリをマウントするには 、fuse.sshfs
を使用します ファイルシステムタイプとして。
user@host:/remote/dir /local/mountpoint fuse.sshfs defaults 0 0
永続マウントを作成するときは、SSHキーベースの認証を使用してリモートホストに接続できることを確認してください。
Windowsへのリモートファイルシステムのマウント#
Windowsユーザーは、Windowsエクスプローラーを使用して、ネットワークドライブをSSHサーバー上のリモートディレクトリにマップできます。
Windowsエクスプローラーを開き、「このPC」を右クリックして「ネットワークドライブのマップ」を選択します。マウントするドライブを選択し、[フォルダ]フィールドに、リモートユーザー、サーバー、およびパスを次の形式で入力します。
\\sshfs\user@host[\PATH]
この記事の執筆時点では、SSHFS-Winはキーベースの認証をサポートしていないため、パスワードベースの認証を受け入れるようにリモートsshサーバーを構成する必要があります。
詳細については、SSHFS-Winmanualを確認してください。
リモートファイルシステムのアンマウント#
マウントされたファイルシステムをデタッチするには、umount
のいずれかを使用します またはfusermount
コマンドの後にマウントされたディレクトリ(マウントポイント)が続きます:
fusermount -u /local/mountpoint
umount /local/mountpoint
結論#
このガイドでは、SSHFSを使用してSSH経由でリモートディレクトリをマウントする方法を学習しました。これは、ローカルマシンアプリケーションを使用してリモートファイルを操作する場合に役立ちます。
sshfsオプションの完全なリストについては、man sshfs
と入力してください。 ターミナルで。
また、SFTP Chroot Jailenvironmentを設定し、デフォルトのSSHポートを変更してサーバーにセキュリティの層を追加することにより、ホームディレクトリへのユーザーアクセスを制限することもできます。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。