ウェブサイト検索

SSH 経由で SSHFS を使用してリモート Linux ファイルシステムまたはディレクトリをマウントする方法


この記事を書く主な目的は、SSH 経由で SSHFS クライアントを使用してリモート Linux ファイル システムをマウントする方法について段階的なガイドを提供することです。

この記事は、何らかの目的でリモート ファイル システムをローカル システムにマウントしたいユーザーやシステム管理者にとって役立ちます。 Linux システムの 1 つにSSHFS クライアントをインストールして実際にテストし、リモート ファイル システムを正常にマウントしました。

さらにインストールを進める前に、SSHFS とその仕組みについて理解しましょう。

SSHFSとは何ですか?

SSHFS は (Secure SHell FileSystem) クライアントの略で、SSH を使用してリモート ファイルシステムをマウントし、ローカル マシン上のリモート ディレクトリやファイルと対話できるようにします。ファイル転送プロトコル (SFTP)。

推奨読書: Linux のリモート サーバーにファイルを転送する 10 の sFTP コマンド例

SFTP は、セキュア シェル プロトコルを介してファイル アクセス、ファイル転送、およびファイル管理機能を提供する安全なファイル転送プロトコルです。なぜなら、SSH はネットワーク上であるコンピュータから別のコンピュータにファイルを転送する際に暗号化を使用し、SSHFS には FUSE (ユーザースペースのファイルシステム) が組み込まれているためです。カーネル モジュールを使用すると、特権のないユーザーがカーネル コードを変更せずにファイル システムを作成できるようになります。

この記事では、Linux ディストリビューションにSSHFS クライアントをインストールして使用し、リモート Linux ファイルシステムまたはディレクトリをローカル Linux マシンにマウントする方法を説明します。

ステップ 1: Linux システムに SSHFS クライアントをインストールする

デフォルトでは、sshfs パッケージはすべての主要な Linux ディストリビューションに存在するわけではありません。依存関係のある Yum コマンドを使用して sshfs をインストールするには、Linux システムで epel リポジトリを有効にする必要があります。

yum install sshfs
dnf install sshfs              [On Fedora 22+ releases]
sudo apt-get install sshfs     [On Debian/Ubuntu based systems]

ステップ 2: SSHFS マウント ディレクトリの作成

sshfs パッケージをインストールしたら、リモート ファイル システムをマウントするマウント ポイント ディレクトリを作成する必要があります。たとえば、/mnt/tecmint の下にマウント ディレクトリを作成しました。

mkdir /mnt/tecmint
sudo mkdir /mnt/tecmint     [On Debian/Ubuntu based systems]

ステップ 3: SSHFS を使用したリモート ファイルシステムのマウント

マウント ポイント ディレクトリを作成したら、root ユーザーとして次のコマンドを実行して、リモート ファイル システムを /mnt/tecmint にマウントします。 。あなたの場合、マウントディレクトリは何でも構いません。

次のコマンドは、ローカル システムの /mnt/tecmint の下に /home/tecmint というリモート ディレクトリをマウントします。 (x.x.x.x を IP アドレスとマウント ポイントに置き換えることを忘れないでください)。


sshfs [email :/home/tecmint/ /mnt/tecmint
sudo sshfs -o allow_other [email :/home/tecmint/ /mnt/tecmint     [On Debian/Ubuntu based systems]

Linux サーバーが SSH キーベースの認証を使用して構成されている場合は、次のコマンドに示すように公開キーへのパスを指定する必要があります。


sshfs -o IdentityFile=~/.ssh/id_rsa [email :/home/tecmint/ /mnt/tecmint
sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa [email :/home/tecmint/ /mnt/tecmint     [On Debian/Ubuntu based systems]

ステップ 4: リモート ファイルシステムがマウントされていることを確認する

上記のコマンドがエラーなく正常に実行されると、/mnt/tecmint にマウントされたリモート ファイルとディレクトリのリストが表示されます。

cd /mnt/tecmint
ls
[root@ tecmint]# ls
12345.jpg                       ffmpeg-php-0.6.0.tbz2                Linux                                           news-closeup.xsl     s3.jpg
cmslogs                         gmd-latest.sql.tar.bz2               Malware                                         newsletter1.html     sshdallow
epel-release-6-5.noarch.rpm     json-1.2.1                           movies_list.php                                 pollbeta.sql
ffmpeg-php-0.6.0                json-1.2.1.tgz                       my_next_artical_v2.php                          pollbeta.tar.bz2

ステップ 5: df -hT コマンドを使用してマウント ポイントを確認する

df -hT コマンドを実行すると、リモート ファイル システムのマウント ポイントが表示されます。

df -hT
サンプル出力
Filesystem                          Type        Size  Used Avail Use% Mounted on
udev                                devtmpfs    730M     0  730M   0% /dev
tmpfs                               tmpfs       150M  4.9M  145M   4% /run
/dev/sda1                           ext4         31G  5.5G   24G  19% /
tmpfs                               tmpfs       749M  216K  748M   1% /dev/shm
tmpfs                               tmpfs       5.0M  4.0K  5.0M   1% /run/lock
tmpfs                               tmpfs       749M     0  749M   0% /sys/fs/cgroup
tmpfs                               tmpfs       150M   44K  150M   1% /run/user/1000
[email :/home/tecmint fuse.sshfs  324G   55G  253G  18% /mnt/tecmint

推奨読書: Linux でディスク容量を確認するための 12 の便利な「df 」コマンド

ステップ 6: リモート ファイルシステムを永続的にマウントする

リモート ファイルシステムを永続的にマウントするには、/etc/fstab というファイルを編集する必要があります。これを行うには、お気に入りのエディタでファイルを開きます。

vi /etc/fstab
sudo vi /etc/fstab     [On Debian/Ubuntu based systems]         

ファイルの最後に移動して次の行を追加し、ファイルを保存して終了します。以下のエントリは、デフォルト設定でリモート サーバー ファイル システムをマウントします。


sshfs#[email :/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0

システムの再起動中にファイルシステムを自動マウントするために、サーバー間に SSH パスワードレス ログインが設定されていることを確認してください。

サーバーが SSH キーベースの認証を使用して構成されている場合は、次の行を追加します。


sshfs#[email :/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0

次に、fstab ファイルを更新して変更を反映する必要があります。

mount -a
sudo mount -a   [On Debian/Ubuntu based systems]

ステップ 7: リモート ファイルシステムのアンマウント

リモート ファイル システムをアンマウントするには、次のコマンドを発行します。これにより、リモート ファイル システムがアンマウントされます。

umount /mnt/tecmint

現時点ではこれですべてです。リモート ファイル システムのマウントで問題が発生した場合、またはサポートが必要な場合は、コメントを通じてご連絡ください。この記事が非常に役立つと思われる場合は、お友達と共有してください。