Linux
 Computer >> コンピューター >  >> システム >> Linux

SSHFSでLinuxにリモートディレクトリを安全にマウントする方法

SSHFSでLinuxにリモートディレクトリを安全にマウントする方法

2台のデバイス間でファイルを同期する方法は数多く存在します。Google DriveやMicrosoft OneDriveには公式のLinuxクライアントがありませんが、NextCloudなどは対応しています。しかし、大企業にファイルを預けることに不安を感じる方もいるでしょうし、NextCloudよりも高いセキュリティを求める方もいます。NextCloudのようなシステムは構成要素が多いため、シンプルなソリューションと比べて未知の脆弱性が潜んでいる可能性が高くなります。

SSHFSを選ぶべき理由

エンドユーザーの視点から見ると、SSHFSは非常に使いやすく、シンプルで洗練されたソリューションです。さらに、長年の実績で鍛えられたOpenSSHサーバーを基盤としているため、セキュリティも極めて高い水準を誇ります。暗号化も最高品質なので、転送中にファイルを盗み見られる心配はありません。適切に設定され、常に最新の状態に保たれたサーバーがSSH接続のみを待ち受けていれば、国家レベルの攻撃者やセキュリティ専門家クラスでもない限り、突破することはほぼ不可能です。そして、そのような攻撃者が個人ユーザーのファイルを狙うことはまずありません。

SSHFSを使わないほうがよいケース

最大限の転送速度を求めるなら、NFSなどの別のソリューションを検討したほうがよいでしょう。インターネット接続の品質が高ければSSHFSが極端に遅いというわけではありませんが、最速でもありません。特に、小さなファイルが数百個含まれるディレクトリを転送する場合、パフォーマンスは大幅に低下します。また、ユーザーごとなどの細かい条件でファイル共有設定を調整したい場合にも、別のソフトウェアのほうが適しています。

まとめると、リモートディレクトリとローカルディレクトリを簡単かつ安全に同期できればよく、速度にそれほどこだわらないのであれば、SSHFSは十分に満足できる選択肢となるでしょう。

SSHFSのインストール

Arch Linuxベースのディストリビューションでは、以下のコマンドを使用します。

sudo pacman -S sshfs

Fedora系のディストリビューションの場合:

sudo dnf install sshfs

Debian、Ubuntuおよびその派生ディストリビューションの場合:

sudo apt install sshfs

openSUSEを使用している場合は、次のコマンドを実行します。

sudo zypper install sshfs

サーバー側の設定

レンタルサーバーやVPSを利用している場合、OpenSSHサーバーデーモンはすでに設定済みです。クラウドサービスプロバイダーの推奨手順に従って、一般ユーザー(root以外)を作成してください。プロバイダーによっては、Webコントロールパネルから直接ユーザーを作成したり、SSH公開鍵をインポートしてアクセスを許可したりできる場合もあります。その場合は、ローカルでssh-keygenコマンドを使ってキーペアを生成し、「/home/ユーザー名/.ssh/id_rsa.pub」にある公開鍵をインポートします。

クラウドプロバイダーがSSH公開鍵を簡単にインポートできるツールを提供していない場合は、手動で設定しましょう。最低限、rootログインの禁止とパスワードログインの無効化を行ってください。代わりにSSH鍵のみを使用するのが理想です。パスワードと異なり、SSH鍵はブルートフォース攻撃(総当たり攻撃)で破られることがほぼありません。

自宅にある2台のコンピューター間でファイルを同期したい場合は、片方をサーバー(openssh-serverパッケージをインストールして設定)、もう片方をクライアントとして扱えばOKです。手順は同じです。

SSHFSでリモートディレクトリをローカルにマウントする

まず、リモート側と同期するローカルディレクトリを作成します。

mkdir $HOME/sshfs

次に、SSHFS経由でリモートディレクトリをローカルにマウントします。「user」をサーバー上で作成した実際のユーザー名に、「203.0.113.1」をリモートインスタンスの実際のIPアドレスに置き換えてください。

sshfs user@203.0.113.1:/home/user $HOME/sshfs

もちろん、サーバー側ユーザーのホームディレクトリ全体を同期したくない場合は、サーバー上に対象ディレクトリを作成したうえで、「/home/user」を「/home/user/some_other_directory」などに置き換えてください。

アンマウントするときは、次のコマンドを使用します。

cd && fusermount -u $HOME/sshfs

まとめ

ディレクトリを恒久的にリモート側と同期したい場合は、sshfs user@203.0.113.1:/home/user $HOME/sshfsのようなコマンドを自動起動マネージャーに登録しましょう。自動起動の設定方法はデスクトップ環境ごとに異なるため、お使いの環境のヘルプマニュアルを参照してください。「/etc/fstab」にエントリを追加する方法を推奨する資料もありますが、マウントに失敗した場合にシステムが起動しなくなる恐れがあるため、避けることをおすすめします。

これで基本的なニーズはすべてカバーできたはずです。もし足りない部分があれば、オンラインのSSHFS公式マニュアルで、より詳細なコマンドラインオプションを確認してみてください。

  1. Linuxの時刻をNTPサーバーと同期する方法【systemd対応・非対応両方を解説】

    パソコンの内蔵時計は完璧ではありません。数日、数週間、あるいは数か月が経つと時刻が徐々にずれ込み、実際の時間を正しく表示しなくなります。たとえば、実際には「10時33分」なのに「10時30分」と表示されるといった具合です。昔のパソコンでは、定期的に手動で時計を合わせるのが一般的でした。しかし、インターネット接続が普及して以降、現代のOSはNTPサーバーの助けを借りて時計を自動的に調整するようになりました。NTPとは?NTPは「Network Time Protocol(ネットワーク・タイム・プロトコル)」の略称です。ネットワーク接続を通じてコンピューターの時計を同期させ、常に正確な時刻を保つた

  2. LinuxでMicrosoft OneDriveを同期する方法!CLIクライアント「onedrive」の使い方

    近年、プロプライエタリな製品を使わざるを得ない場面は少なくありません。オープンソース愛好家なら、クラウドストレージもオープンなものを選びたいところですが、現実にはGoogle、Amazon、Dropbox、Microsoftといった大手企業がクラウドストレージ市場をほぼ独占しています。これらのサービスは無料で信頼性の高い製品を提供する一方、法的要請への対応や広告配信のためにファイルをスキャン・読み取りする可能性があるのも事実です。しかし、だからといって利用を避ける必要はありません。 OneDriveはMicrosoftが提供するクラウドストレージサービスです。Windowsプラットフォーム向