GNU/Linux >> Linux の 問題 >  >> Linux

SSHFSを使用してSSH経由でリモートディレクトリをマウントする方法

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 updatesudo apt install sshfs

CentOSへのSSHFSのインストール#

CentOSおよびその他のRedHat派生ディストリビューションでは、次のコマンドを実行してsshfsをインストールします。

sudo yum install sshfs

macOSへのSSHFSのインストール#

macOSユーザーは、osxfusesiteまたはHomebrewからFUSEおよびSSHFSパッケージをダウンロードすることにより、SSHFSクライアントをインストールできます。

brew cask install osxfusebrew 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を使用します ファイルシステムタイプとして。

/ etc / fstab
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ポートを変更してサーバーにセキュリティの層を追加することにより、ホームディレクトリへのユーザーアクセスを制限することもできます。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. Linuxでディレクトリをループする方法は?

  2. ssh 経由でディレクトリを比較する方法

  3. adbシェルでsuコマンドを使用するには?

  1. LinuxにリモートWindows共有をマウントする方法

  2. SSHFS (Secure SHell FileSystem) – リモート ファイルシステムを ssh 経由で安全にマウント

  3. ssh ControlMaster 接続が使用されているかどうかを確認する方法

  1. SSHFS:SSH経由でリモートファイルシステムをマウントする方法

  2. SSH経由でリモートシステムでLinuxコマンドを実行する方法

  3. SSH 経由でデバイスを使用しますか?