SSHFS自体は、SSHファイル転送プロトコル(SFTP)を使用してリモートファイルシステムをマウントするユーザースペース(FUSE)のファイルシステムです。 sshfs
コマンドは、SSHFSを使用して、別のサーバーからローカルのマシンにリモートファイルシステムをマウントするためのクライアントツールです。
注: ユーザースペース(またはユーザーランド)は、カーネルの外部で実行されるすべてのオペレーティングシステムコードです。
ローカルファイルシステムほどのパフォーマンスはありませんが、sshfs
ローカルプログラムとツールを使用して、別のコンピューター上のファイルを操作する簡単な方法です。何よりも、sshfs
ローカルマシン上の非特権ユーザーが使用できます(実際、使用しないことをお勧めします sshfs
を使用している間、rootになるか、特権を昇格させます )、SFTPが有効になっているSSH以外のリモートマシンに特別なソフトウェアは必要ありません。これは一般的な設定です。
sshfs
のインストール
sshfs
ツールは、ほとんどのディストリビューションの標準リポジトリから入手でき、そのディストリビューションのパッケージマネージャーを使用して最も簡単にインストールできます。 Fedoraの場合、sshfs
をインストールします と同じくらい簡単です:dnf install fuse-sshfs
。 Debianベースのシステムでは、パッケージは単にsshfs
です。 。
一度sshfs
がインストールされている場合、SSH経由でリモートファイルシステムを安全にマウントするのは簡単です。 sshfs
によると マニュアルページ(man sshfs
)、コマンドの構文は次のとおりです。
sshfs [user@]host:[dir] mountpoint [options]
その構文は、SSHまたはSCPを以前に使用したことがある人なら誰でも見覚えがあるはずです。
sshfs
を見てみましょう アクションで。まず、マウントポイントとして使用するディレクトリを作成(または既存のディレクトリを選択)します。 sshfs
を呼び出すローカルユーザーに注意してください コマンドには、マウントポイントへの書き込みアクセス権が必要です。 rootアカウントの使用は推奨されていないため、そのポリシーでは~/mnt
を使用する場合があります。 /mnt
よりも望ましい 。次に、sshfs
を使用するだけです。 SSHクレデンシャルを使用してリモートマシンに接続し、マウントポイントにマウントするリモートロケーションを指定するコマンド:
# Create the mountpoint
[chris@marvin ~ ]$ mkdir ~/mnt
# Invoke SSHFS with your SSH credentials and the remote location to mount
[chris@marvin ~ ]$ sshfs chris@zaphod:/home/chris/Pictures ~/mnt
# Access the newly mounted filesystem
[chris@marvin ~ ]$ ls ~/mnt/
'Screenshot from 2019-11-17 19-34-34.png'
注: おもしろい事実、sshfs
~
を展開しません リモートマシンでユーザーのホームディレクトリに移動します。
マウントされたファイルシステムは、コマンドラインからでも他のツールを使用しても、ローカルファイルシステムと同じようにアクセスして使用できます。
リモートファイルシステムの使用が終了したら、fusermount
を使用してアンマウントします。 コマンド:
# Unmount the remote FS
[chris@marvin ~ ]$ fusermount -u ~/mnt
ほとんどの場合、デフォルトのsshfs
コマンドはそのまま使用できますが、sshfs
単純なコマンドとはほど遠いです。 SSHおよびSFTPオプション、圧縮など、さまざまな状況をカバーするオプションとフラグがたくさんあります。sshfs
をチェックしてください。 手動(man sshfs
)利用可能なものの詳細については。
ただし、最も便利なオプションの1つは、reconnect
です。 、これにより、クライアントは中断されたリモートシステムへの接続を再確立できます:
# Use "-o reconect" to allow the client to reconnect
[chris@marvin ~ ]$ sshfs chris@zaphod:/home/chris/Pictures ~/mnt -o reconnect
sshfs
コマンドは、クライアントシステムの/etc/fstab
でも使用できます。 リモートファイルシステムを自動的にマウントするファイル。通常のfstab
を使用します 必要なオプションを含む構文、およびsshfs
を使用する ファイルシステムタイプの代わりに:
# file: /etc/fstab
chris@zaphod:/home/chris/Pictures /home/chris/mnt sshfs
sshfs
を使用することに注意してください fstab
を使用 ファイルシステムのファイルマウントはrootとして実行する必要があるため、SSHクレデンシャルを適切に調整し、適切な予防措置を講じる必要があります。
Transport endpoint is not connected
を受け取る場合があります 接続が中断されたときのエラー(たとえば、クライアントマシンがネットワークを変更した場合、または一時停止された場合)。この場合、fusermount
を使用してファイルシステムをアンマウントします 上記のコマンド:
[chris@marvin ~ ]$ ls ~/mnt
ls: cannot access '/home/chris/mnt': Transport endpoint is not connected
[chris@marvin ~ ]$ fusermount -u ~/mnt
うまくいけば、この記事でsshfs
を操作するために必要な基本事項がわかりました。 。これは、クライアントコンピューターにローカルにマウントされているときに、暗号化されたSSH接続を介してリモートファイルシステムを安全に操作するための優れたツールです。そして、前述のように、sshfs
に感謝します FUSEファイルシステムであるため、特権のないユーザーでも、管理者が設定しなくても使用できます。
Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。