今日は、LinuxシステムでSSHキーを生成して使用する方法について簡単に説明します。
LinuxシステムでSSHキーを生成するにはどうすればよいですか?
SSHキーは、SSH(セキュアシェル)ネットワークプロトコルのアクセスクレデンシャルです。この認証と暗号化のセキュアネットワークプロトコルは、セキュアでないオープンネットワーク上のマシン間のリモート通信に使用されます。
つまり、SSHキーはセキュアシェルで使用されるセキュアアクセスクレデンシャルであると言えます( SSH)プロトコル。 SSHキーは、デジタルID認証と暗号化のゴールドスタンダードである公開キーインフラストラクチャテクノロジに基づくキーペアを使用して、安全でスケーラブルな認証方法を提供します。
SSHキーペアを使用した認証の仕組み
SSHキーペアは、SSHプロトコルを使用してリモートシステムにアクセスするユーザーまたはプロセスのIDを認証するために使用されます。 SSH公開鍵は、ユーザーとリモートサーバーの両方で使用され、メッセージの暗号化に使用されます。
リモートサーバー側では、公開鍵は、承認されたすべてのリストを含むファイルに保存されます。公開鍵。ユーザー側では、公開鍵はSSH鍵管理ソフトウェアまたはコンピューター上のファイルに保存されます。秘密鍵は、リモートサーバーへのアクセスに使用されているシステムにのみ残り、メッセージの復号化に使用されます。
ユーザーまたはプロセスがSSHクライアントを使用してリモートサーバーへの接続を要求すると、チャレンジ-認証を完了するために応答シーケンスが開始されます。 SSHサーバーは、接続が要求されていることを認識し、共有公開鍵情報を使用して暗号化されたチャレンジ要求を送信します。
次に、SSHクライアントはチャレンジメッセージを復号化し、SSHサーバーに応答します。ユーザーまたはプロセスは、アクセスを許可されるためにチャレンジに正しく応答する必要があります。このチャレンジ/レスポンスシーケンスは、ユーザーが手動で操作しなくても、SSHクライアントとSSHサーバー間で自動的に実行されます。
このガイドでは、UbuntuシステムのSSHキーの設定に焦点を当てます。これらの手順を使用して、すべてのLinux環境でSSHキーを設定できます。 SSHキーは、サーバーにログインするための簡単で安全な方法を提供し、すべてのユーザーに推奨されます。
ステップ1:RSAキーペアを作成する
最初のステップは、ローカルシステムでキーペアを作成することです。
デフォルトでは、ssh-keygenは2048ビットのRSAキーペアを生成します。オプションで、-b 4096フラグを渡して、より大きなRSAビットキーを作成できます。 ssh-keygenコマンドを入力すると、以下の画面が表示されます。
ENTERを押します キーペアを.ssh/に保存します ホームディレクトリのサブディレクトリ、または代替パスを指定します。以前にSSHキーを生成したことがある場合は、以下の画面が表示される場合があります。
サーバー上の既存のキーを上書きすることを選択した場合、以前のキーを使用して認証することはできなくなります。このプロセスを元に戻すことはできないため、[はい]を選択するときは十分に注意してください。この後、以下の画面が表示されます。
ここでは、オプションで、安全なパスフレーズを入力できます。これを強くお勧めします。パスフレーズはパスワードに似ています。ただし、パスワードとは通常、システムの認証またはログインに使用されるものを指します。パスワードは通常、暗号化キーを保護するために使用される秘密を指します。
暗号化キーはパスフレーズから取得され、保護されたリソースを暗号化するために使用されます。パスフレーズは、許可されていないユーザーがログインするのを防ぐためのセキュリティの追加レイヤーを追加します。この後、次の画面が表示されます。
これで、認証に使用できる公開鍵と秘密鍵ができました。次のステップは、SSHキーベースの認証を使用してログインできるように、サーバーに公開キーを配置することです。
手順:2公開鍵をCentOSサーバーにコピーします
公開鍵をサーバーにコピーする最も簡単な方法は、ssh-copy-idコマンドを使用することです。上記のコマンドは単純であるため、強くお勧めします。コマンドssh-copy-idを使用してSSHキーをコピーします。 ssh-copy-idコマンドを使用して、SSHキーを貼り付けるユーザー名とIPアドレス/ホストサーバーを指定する必要があります。
ssh-copy-id example @ unixlinux.online/ホストサーバー
たとえば、#ssh-copy-id [email protected](192.168.2.152は、この記事の手順を実行するために使用した内部IPアドレスです。このIPアドレスを実際のIPアドレスに置き換えてください。)
その後、以下の画面が表示される場合があります。
ここで、SSHキーを貼り付けるリモートホストのパスワードを入力し、「ENTER」を押す必要があります。 「ENTER」を押すと、リモートホストに接続し、〜/ .ssh / id_rsa.pubキーの内容をリモートアカウントのホーム〜/.sshディレクトリ内のauthorized_keysというファイルにコピーします。以下の画面が表示される場合があります。
これで、id_rsa.pubキーがリモートアカウントにアップロードされました。
ステップ3—SSHキーを使用してUbuntuサーバーを認証する
手順を完了すると、リモートアカウントのパスワードなしでリモートホストにログインできるようになります。ターミナルに次のコマンドを入力して、リモートアカウントのパスワードなしでリモートサーバーにログインします。
#ssh [email protected]_address_of_remote_server
たとえば、#ssh [email protected]
「ENTER」を押すと、リモートホストにログインします。
ステップ4—サーバーでパスワード認証を無効にする
サーバーに正常にログインした場合は、SSHキーベースの認証が正常に構成されていることを意味します。ただし、パスワードベースの認証はサーバー上で引き続きアクティブです。これは、サーバーがブルートフォース攻撃にさらされていることを意味します。
ブルートフォース攻撃を防ぐには、サーバーでパスワード認証を無効にする必要があります。そのためには、アカウントに管理者(root)権限があることを確認してください。まず、SSHキーベースの認証を設定したサーバーにログインします。
パスワードベースの認証を無効にするには、以下のコマンドを使用する必要があります。
#sudo vi / etc / ssh / ssg_config
ファイル内で、次の行PasswordAuthenticationを検索します。 「私」を押します 」を使用してテキストを挿入し、行を編集して値「 NO」を設定します 」。これにより、アカウントのパスワードを使用してSSH経由でログインする機能が無効になります。
上記の手順が完了したら、「Esc<」を押します。 / strong> 」と入力し、「:wq 」と入力してEnterキーを押します。
これらの変更を実際に実装するには、を使用してsshdサービスを再起動する必要があります。以下のコマンド。
#sudo systemctl restart sshd.service
以上です。