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

SSHFS:SSHを介したリモートファイルシステムのマウント

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


Linux
  1. 暗号化されたホームディレクトリを持つUbuntuシステムへのauthorized_keysを使用したSSH?

  2. sshfs よりも高速にリモート ファイル システムをマウントする方法はありますか?

  3. Ubuntu の SSH コマンドラインの代替

  1. システムでSSHアクセスを保護する8つの方法

  2. ssh を介して複数のマシンでログ ファイルを追跡する

  3. SSH 経由のシステム ビープ音を無効にする

  1. Ssh – Sshを使用してファイルをローカルシステムにコピーし直しますか?

  2. Ssh – Teamviewerを置き換えるためのSshリバーストンネルを介したリモートデスクトップ?

  3. Sudoを介してSsh上でスクリプトファイルを実行しますか?