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を試してみませんか?今すぐ無料でダウンロードしてください。