セキュアシェル 、一般に SSHとして知られています は、ユーザーがサーバーなどのリモートホストに安全に接続できるようにする安全なネットワークプロトコルです。これはクライアントサーバーアーキテクチャに基づいており、2つの主要な認証方法(パスワード)を使用します。 およびssh-key ペア認証。
SSHキー ペア認証では、SSHキーを使用します。これは、クライアントとサーバー間の通信を認証および保護するために使用される暗号化キーです。 SSHキーペア認証は、ブルートフォース攻撃の影響を受けにくいより安全な認証を提供するため、パスワード認証よりも優先されます。
このチュートリアルでは、 AlmaLinuxでSSHキーを設定する方法を説明します。 。
AlmaLinuxでのRSASSHキーペアの作成
ショーを開始するには、 RSAを作成します 公開鍵と秘密鍵で構成される鍵ペア。これらのキーについては、ガイドの後半でわかりやすく説明します。キーペアを作成するには、次のコマンドを実行します。
$ ssh-keygen OR $ ssh-keygen -t rsa
上記のコマンドは2048を作成します -通信を保護するための適切な暗号化を提供するのに十分であると考えられるビットRSAキーペア。ただし、 4096を作成することはできます -より堅牢で暗号化が優れたビットキーペア。
これを行うには、-b
を渡すだけです。 国旗。これがまさに私たちがやろうとしていることです。
$ ssh-keygen -b 4096
ENTERを押した直後 、キーが保存されるパスを指定するように求められます。デフォルトでは、これは〜/ .sshです。 ディレクトリ。別のパスに変更する必要がない限り、 ENTERを押してデフォルトのディレクトリに移動します 。

その後、パスフレーズまたはパスワードを入力する必要があります。オプションですが、これにより、認証時に保護のレイヤーが追加されます。
ただし、これは、パスワードなしのssh-key認証をリモートホストに設定する場合に制限されます。これが目標の場合は、「 ENTER」を押すだけです。 ’キーフレーズの提供をスキップします。

これがコマンドの出力全体です。

この時点で、キーは〜/ .sshに保存されているはずです。 ホームディレクトリの隠しディレクトリであるディレクトリ。これを確認するには、次のコマンドを実行します:
$ ls -la ~/.ssh

注意すべきいくつかのポイント:
- id_rsa 秘密鍵です。名前が示すように、これは極秘に保つべきであり、決して漏らしたり共有したりしてはなりません。攻撃者は、秘密鍵を入手すると、リモートホストを簡単に侵害する可能性があります。
- id_rsa.pub は公開鍵であり、問題なく共有できます。接続したい任意のリモートホストに保存できます。
SSH公開鍵をリモートLinuxサーバーにコピー
次のステップは、公開鍵をリモートサーバーまたはホストにコピーまたは転送することです。これは手動で行うことができますが、 ssh-copy-id コマンドを使用すると、これを簡単に実行できます。
ssh-copy-id コマンドは次の構文を取ります:
$ ssh-copy-id user@remote-host-ip-address
このセットアップでは、IPが 172.105.135.246のリモートホストがあります。 およびジャックと呼ばれる構成済みのリモートユーザー 。
公開SSHキーをコピーするには、次のコマンドを実行します:
$ ssh-copy-id [email protected]
ホストに初めて接続する場合は、以下の出力が表示されます。認証を続行するには、「はい」と入力します ENTERを押します 続行します。
パスワードを入力したら、「 ENTER」を押します ‘公開鍵はauthorized_fileに配置されます 〜/ .sshのファイル リモートホスト上のディレクトリ。

ローカルシステムでは、 known_hosts ファイルは〜/ .sshに作成されます ディレクトリ。このファイルには、接続したリモートホストのSSHフィンガープリントが含まれています。
$ ls -la ~/.ssh

次のように表示できます。
$ cat ~/.ssh/known_hosts

リモートLinuxへのSSHパスワードなしログイン
公開鍵がリモートホストに保存されたので、SSHパスワード認証なしでリモートホストにログインできるようになりました。これをテストするために、リモートホストに通常どおりログインしてみます。
$ ssh [email protected]

出力から、リモートシステムのシェルにすぐにドロップしたことがわかります。これにより、 SSHが正常に構成されたことを確認できます。 パスワードなしの認証。
次に、公開鍵が authorized_keysに保存されていることを確認します リモートホスト上のファイル。
$ ls -la ~/.ssh/

ファイルを表示するには、次のようにcatコマンドを使用します。
$ cat ~/.ssh/authorized_keys

SSHパスワード認証を無効にする
まだ完了していません。パスワード認証はまだ有効になっているため、リモートサーバーまたはホストがブルートフォース攻撃を受ける可能性があります。
この攻撃ベクトルを排除するには、パスワード認証を無効にすることを強くお勧めします。これにより、SSHキーペアを介してのみログインが可能になります。これを実現するには、 sshd_configを開きます メインのSSH構成ファイルであるファイル。
$ sudo vim /etc/ssh/sshd_config
PasswordAuthenticationを見つけます 指令。コメントアウトされている場合は、コメントを解除して「いいえ」に設定します 。
PasswordAuthentication no
変更を保存してファイルを終了します。
次に、SSHを再起動して、行った変更を適用します。
$ sudo systemctl restart sshd
これにより、パスワード認証が正常に無効になり、SSH秘密キーを持つユーザーのみがログインできます。
この時点で、SSHパスワード認証はリモートサーバーで無効になっており、リモートサーバーにアクセスする唯一の可能な方法は公開鍵を使用することです。 認証。
AlmalinuxでSSHキーを設定することができました さらに、SSHキーペアを使用してパスワードなしのSSH認証を構成することもできました。さらに、ブルートフォース攻撃を回避するためにパスワード認証を無効にしました。