進化し続けるサイバーセキュリティ環境では、パスワードが脆弱になりつつあります。これまで以上に、システムはブルートフォース攻撃を受けやすくなっています。また、ユーザーは、脆弱で推測可能なパスワードでシステムを保護することにより、ハッカーがシステムに侵入しやすくしています。 2要素認証は現在では一般的であり、OTPコードを使用して保護の追加レイヤーを提供し、実際にシステムにログインしているユーザーであることを確認します。
サーバーを保護するもう1つの方法は、サーバーにパスワードなしのSSH認証を設定することです。これは、SSHキーペアがローカルシステムで生成される公開キーSSH認証を使用します。キーペアは、SSHの秘密鍵と公開鍵で構成されています。公開鍵がリモートシステムにアップロードされている間、秘密鍵はローカルシステムに残ります。認証中に、リモートシステムに保存されている公開鍵とローカルシステムの秘密鍵の間で鍵交換が行われます。したがって、後続の接続は保護され、パスワードは必要ありません。
このガイドでは、3つの簡単な手順でパスワードSSH認証を構成する方法について説明します。
パスワードなしのSSHセットアップラボ
デモンストレーションの目的で、次のラボ設定を使用します。
Local Linux system - 192.168.2.104
Remote Linux system - 192.168.2.108
SSHパスワード認証を使用して、ローカルシステムからリモートシステムにアクセスできることも確認するのが賢明です。
始めましょう!
ステップ1.SSHキーペアを生成する
すぐに、ホームディレクトリに保存されるSSHキーペアを生成します。したがって、 ssh-keygenを呼び出します 示されているようにコマンド。ここでは、4096ビットのキーペアを作成しています。
$ ssh-keygen -b 4096
Enterキーを押すだけで、デフォルトを受け入れます。 SSHキーペアは〜/ .sshにあります。 ホームフォルダの隠しディレクトリであるディレクトリ。
念のため、lsコマンドを使用してSSHキーの存在を確認してください。
$ ls .ssh
秘密鍵はid_rsaで示されます id_rsa.pub 公開鍵です。これらは暗号化された暗号化キーです。後で、公開鍵をリモートシステムにコピーします。
ステップ2.SSHキーペアをリモートシステムにコピーします
次に、公開鍵をコピーしてリモートLinuxシステムに保存する必要があります。なぜこれをしているのですか?公開鍵認証では、リモートシステムの公開鍵とローカルシステムにある秘密鍵の間で認証ハンドシェイクが行われます。これにより、ローカルホストシステムとリモートシステム間の後続のすべてのトラフィックが確実に暗号化されます。
SSH公開鍵をコピーするには、 ssh-copy-idを実行します 次のようにコマンドを実行します。
$ ssh-copy-id [email protected]
私たちの場合、これは次のようになります:
$ ssh-copy-id [email protected]
接続を続行するには、「はい」と入力してEnterキーを押します。その後、リモートシステムにパスワードを入力してログインし、SSH公開鍵をコピーします。
公開SSHキーは、 authorized_keysという一意のファイルに追加されます ログインしているユーザーアカウントのホームディレクトリにあります。このファイルへのフルパスは〜/ .ssh / authorized_keysです。
SSHキーが正常にコピーされたら、次のように公開キー認証を使用してリモートシステムにログインできます。
$ ssh [email protected]
以下のスニペットから、パスワードの入力を求められることなく、リモートシステムにログインしていることがわかります。素晴らしい!
前述のように、公開鍵は〜/.ssh/authorized_keysに保存されます パス。
手順3.パスワード認証を無効にする(オプション)
リモートシステムのセキュリティを強化したい場合は、パスワード認証を無効にすることを検討してください。そうすることで、ローカルシステムにある秘密鍵を使用してシステムにアクセスできるのはあなただけであることを確認します。キーは常に極秘である必要があります。システムが危険にさらされないように、他の人と共有しないでください。
リモートホストで、 / etc / sshd_configへのアクセスを開きます 表示されたファイル。
$ sudo vim /etc/sshd_config
PasswordAuthenticationを見つけます パラメータを設定し、いいえに設定します 示されているように。
次に、図のように公開鍵認証が有効になっていることを確認します。
変更を保持するには、次のようにSSHサービスの再起動を実行します。
$ sudo systemctl restart ssh
パスワード認証が無効になっていることを示すために、PuttySSHクライアントを使用してサーバーにアクセスしてみます。リモートシステムのアドレスを入力し、[開く]をクリックします
リモートユーザー名を入力してEnterキーを押します。今回は、パスワード認証を無効にしたため、認証を取得します。
結論
公開鍵認証は、サーバーを接続および強化するための改ざん防止方法です。システムにパスワード認証がある場合に不吉なブルートフォースパスワード攻撃などの攻撃ベクトルを排除します。