目次:
- SSHFSのインストール
- UbuntuおよびDebianにSSHFSをインストールする
- CentOSにSSHFSをインストールする
- macOSにSSHFSをインストールする
- WindowsでのSSHFSのインストール
- リモートファイルシステムのマウント
- Windowsでのリモートファイルシステムのマウント
- リモートファイルシステムのアンマウント
- 結論
SSHFS(SSH Filesystem)は、SUSE接続を介してリモートディレクトリをマウントするためのFUSEに基づくファイルシステムクライアントです。 SSHFSは、SFTPのサブシステムであるSFTPプロトコルを使用しており、ほとんどのSSHサーバーでデフォルトで有効になっています。
NFSやSambaなどの他のネットワークファイルシステムプロトコルと比較した場合、SSHFSの利点は、サーバー側で追加の構成を必要としないことです。 SSHFSを使用するには、リモートサーバーへのSSHアクセスのみが必要です。
SSHFSはSFTPを使用するため、サーバーとクライアント間で送信されるデータはすべて暗号化および復号化する必要があります。 これにより、NFSと比較してパフォーマンスがわずかに低下し、クライアントとサーバーのCPU使用率が高くなります。
このチュートリアルでは、Linux、macOS、およびWindowsにSSHFSクライアントをインストールする方法と、リモートディレクトリをマウントする方法を示します。
SSHFSのインストール
SSHFSパッケージはすべての主要なオペレーティングシステムで利用でき、インストールは非常に簡単です。
UbuntuおよびDebianにSSHFSをインストールする
SSHFSは、デフォルトのUbuntuおよびDebianリポジトリから入手できます。 次を入力して、パッケージインデックスを更新し、sshfsクライアントをインストールします。
sudo apt update
sudo apt install sshfs
CentOSにSSHFSをインストールする
CentOSおよびその他のRed Hat派生製品では、次のコマンドを実行してsshfsをインストールします。
macOSにSSHFSをインストールする
macOSユーザーは、osxfuseサイトから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 host: mountpoint
sshfsコマンドは、SSH構成ファイルを読み取り、ホストごとの設定を使用します。 リモートディレクトリが指定されていない場合、リモートユーザーのホームディレクトリがデフォルトになります。
たとえば、「192.168.121.121」のIPアドレスを持つリモートホストに「linuxize」という名前のユーザーのホームディレクトリをマウントするには、最初にマウントポイントとして機能するディレクトリを作成します。
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
この記事を書いている時点では、SSHFS-Winはキーベースの認証をサポートしていないため、パスワードベースの認証を受け入れるようにリモートsshサーバーを構成する必要があります。
詳細については、SSHFS-Winのマニュアルを参照してください。
リモートファイルシステムのアンマウント
マウントされたファイルシステムをデタッチするには、
umount
または
fusermount
コマンドを使用し、その後にマウントされたディレクトリ(マウントポイント)を続けます。
fusermount -u /local/mountpoint
結論
このガイドでは、SSHFSを使用してSSH経由でリモートディレクトリをマウントする方法を学びました。 これは、ローカルマシンアプリケーションを使用してリモートファイルと対話する場合に役立ちます。
sshfsオプションの完全なリストについては、ターミナルで
man sshfs
してください。
また、SFTP Chroot Jail環境をセットアップし、デフォルトのSSHポートを変更してサーバーに追加のセキュリティレイヤーを追加することにより、ホームディレクトリへのユーザーアクセスを制限することもできます。
ssh sftpマウントターミナル