サイバーセキュリティを真剣に考え、SSH キーを使用してリモート ログインにアクセスしてください。パスワードよりも安全な接続方法です。 Linux で SSH キーを生成、インストール、使用する方法を示します。
パスワードの何が問題なのでしょうか?
セキュア シェル (SSH) は、リモートの Linux または Unix 系 コンピュータ上のユーザー アカウントにログインするために使用される暗号化プロトコルです。通常、このようなユーザー アカウントはパスワードを使用して保護されます。リモート コンピュータにログインするときは、ログインするアカウントのユーザー名とパスワードを入力する必要があります。
パスワードは、コンピューティング リソースへのアクセスを保護する最も一般的な手段です。それにもかかわらず、パスワードベースのセキュリティには欠陥があります。人々は、弱いパスワードを選択したり、パスワードを共有したり、複数のシステムで同じパスワードを使用したりします。
SSH キーははるかに安全であり、一度設定すると、パスワードと同じくらい簡単に使用できます。
SSH キーを安全にするものは何ですか?
SSH キーはペアで作成され、使用されます。 2 つのキーはリンクされており、暗号的に安全です。 1 つは公開キーで、もう 1 つは秘密キーです。これらはユーザー アカウントに関連付けられています。 1 台のコンピュータ上で複数のユーザーが SSH キーを使用する場合、各ユーザーは独自のキーのペアを受け取ります。
秘密キーは (通常は) ホーム フォルダーにインストールされ、公開キーはアクセスする必要があるリモート コンピューター (複数のコンピューター) にインストールされます。
秘密キーは安全に保管する必要があります。他の人がアクセスできる場合は、パスワードを発見されたのと同じ状況になります。賢明であり、強く推奨される予防策は、秘密キーを堅牢な パスフレーズ を使用してコンピュータ上で暗号化することです。
公開キーは、セキュリティを損なうことなく自由に共有できます。公開鍵を調べても秘密鍵が何であるかを判断することはできません。秘密キーは、秘密キーのみが復号化できるメッセージを暗号化できます。
接続要求を行うと、リモート コンピュータは公開キーのコピーを使用して暗号化されたメッセージを作成します。メッセージにはセッション ID とその他のメタデータが含まれています。このメッセージを復号化できるのは、秘密キーを持っているコンピュータ (あなたのコンピュータ) だけです。
コンピュータは秘密キーにアクセスし、メッセージを復号化します。次に、独自の暗号化メッセージをリモート コンピュータに送り返します。この暗号化されたメッセージには、特に、リモート コンピューターから受信したセッション ID が含まれています。
リモート コンピュータは、コンピュータに送信されたメッセージからセッション ID を抽出できるのは秘密キーだけであるため、あなたが本人であるに違いないことを認識します。
リモート コンピュータにアクセスできることを確認する
リモート コンピュータにリモート接続してログイン できることを確認します。これは、ユーザー名とパスワードがリモート コンピューター上に有効なアカウントを設定しており、資格情報が正しいことを証明します。
パスワードを使用して SSH を使用してターゲット コンピュータに接続できることを確認するまでは、SSH キーを使用して何も実行しないでください。
この例では、
dave
というユーザー アカウントを持つユーザーが というコンピュータにログインしています。
。彼らは
Sulaco
という名前の別のコンピュータに接続しようとしています。
次のコマンドを入力します。
SSH デイブ@sulaco
パスワードを求められ、それを入力すると、Sulaco に接続されます。これを確認するためにコマンド ライン プロンプトが変わります。
必要な確認はこれですべてです。したがって、ユーザー
dave
exit
コマンドを使用して
Sulaco
から切断できます。
出口
ユーザーは切断メッセージを受け取り、コマンド ライン プロンプトが
dave@
に戻ります。
SSH キーのペアの作成
これらの手順は、Linux の Ubuntu、Fedora、および Manjaro ディストリビューションでテストされました。すべてのケースでプロセスは同一であり、どのテスト マシンにも新しいソフトウェアをインストールする必要はありませんでした。
SSH キーを生成するには、次のコマンドを入力します。
ssh-keygen
生成プロセスが開始されます。 SSH キーをどこに保存するかを尋ねられます。 Enter キーを押して、デフォルトの場所を受け入れます。フォルダーのアクセス許可により、フォルダーは自分の使用のみに保護されます。
パスフレーズの入力を求められます。ここにパスフレーズを入力することを強くお勧めします。そしてそれが何であるかを覚えておいてください! Enter キーを押してパスフレーズを設定しないこともできますが、これはお勧めできません。 3 つまたは 4 つの接続されていない単語をつなぎ合わせて構成されたパスフレーズは、非常に堅牢なパスフレーズになります。
入力したと思ったものを入力したかどうかを確認するために、同じパスフレーズをもう一度入力するように求められます。
SSH キーが生成され、保存されます。
表示される「randomart」は無視して大丈夫です。リモート コンピュータによっては、接続するたびにランダムなアートが表示される場合があります。アイデアは、ランダム アートが変更されたかどうかを認識し、そのサーバーの SSH キーが変更されたことを意味するため、接続を疑うということです。
公開キーのインストール
公開鍵があなたのものであることを Sulaco に認識させるために、公開鍵をリモート コンピューターである
Sulaco
にインストールする必要があります。
これを行うには
ssh-copy-id
コマンドを使用します。このコマンドは、通常の
ssh
コマンドと同様にリモート コンピュータへの接続を確立しますが、ログインを許可する代わりに、公開 SSH キーを転送します。
ssh-コピー-id dave@sulaco
リモート コンピュータにログインしていなくても、パスワードを使用して認証する必要があります。リモート コンピュータは、新しい SSH キーがどのユーザー アカウントに属しているかを識別する必要があります。
ここで指定する必要があるパスワードは、ログインしているユーザー アカウントのパスワードであることに注意してください。これは、作成したばかりのパスフレーズではありません。
パスワードが検証されると、
ssh-copy-id
公開キーをリモート コンピュータに転送します。
コンピュータのコマンド プロンプトに戻ります。リモート コンピュータに接続したままになることはありません。
SSH キーを使用した接続
提案に従って、リモート コンピューターへの接続を試してみましょう。
SSH デイブ@sulaco
接続プロセスでは秘密キーにアクセスする必要があり、SSH キーをパスフレーズで保護しているため、接続を続行するにはパスフレーズを指定する必要があります。
パスフレーズを入力し、「ロック解除」ボタンをクリックします。
ターミナル セッションでパスフレーズを入力すると、そのターミナル ウィンドウが開いている限り、パスフレーズを再度入力する必要はありません。パスフレーズを再度入力することなく、好きなだけリモート セッションに接続したり切断したりできます。
「ログインするたびにこのキーのロックを自動的に解除する」オプションのチェックボックスをオンにすることもできますが、セキュリティが低下します。コンピュータを放置すると、公開キーを持っているリモート コンピュータに誰でも接続できるようになります。
パスフレーズを入力すると、リモート コンピュータに接続されます。
プロセスをもう一度エンドツーエンドで確認するには、
exit
コマンドで切断し、同じターミナル ウィンドウからリモート コンピュータに再接続します。
SSH デイブ@sulaco
パスワードやパスフレーズを必要とせずにリモート コンピュータに接続できます。
パスワードは不要ですが、セキュリティは強化されています
サイバーセキュリティの専門家は、セキュリティ摩擦と呼ばれるものについて語ります。これは、追加のセキュリティを得るために我慢する必要がある小さな痛みです。より安全な作業方法を採用するには、通常、いくつかの追加の手順が必要です。そして、ほとんどの人はそれが好きではありません。実際、彼らはセキュリティが低く、摩擦がないことを好みます。それが人間の本性なのです。
SSH キーを使用すると、セキュリティが強化され、利便性が向上します。それは間違いなくwin-winです。





