GNU/Linux >> Linux の 問題 >  >> Rocky Linux

RockyLinuxでSSHパスワードレスログインを設定する方法

SSH キーは、2つのサーバーまたはシステム間のトラフィックまたは通信を認証および保護するために使用される暗号化キーです。ブルートフォース攻撃を受けやすい従来のパスワード認証とは対照的に、より安全な認証方法を提供します。

このチュートリアルでは、 Rocky LinuxでSSHキーを設定する方法について説明します。 。

RockyLinuxでRSASSHキーペアを作成する

RSAの作成を開始するには ローカルシステムのキーペアは、次のコマンドを実行します。

$ ssh-keygen
OR
$ ssh-keygen -t rsa 

デフォルトでは、これにより2048ビットRSAが作成されます クライアントとリモートホスト間のトラフィックを暗号化するのに十分安全であると見なされるキーペア。

オプションで、4096ビットを作成できます -bを渡すことで、より大きく、より安全なキーペア 次のオプション:

$ ssh-keygen -b 4096

ssh-keygenを実行した後 コマンドを実行すると、一連のプロンプトが表示されます。最初に、キーが保存されるファイルを提供する必要があります。デフォルトでは、キーは~/.sshに保存されます ホームディレクトリのディレクトリ。カスタムファイルを定義できますが、この図では、デフォルトを使用します

したがって、 ENTERを押します キーを~/.sshに保存します ホームディレクトリのディレクトリ。

SSHキーがすでに存在する場合は、次のプロンプトが表示され、上書きするように求められます。ここで注意してください。キーを上書きすると、以前のキーを使用して認証ができなくなります。 「はい」を選択する 現在のキーを破棄し、新しいキーを生成します。

次に、パスフレーズの入力を求められます。これはオプションの手順であり、許可されていないユーザーが認証にキーを使用することを防ぐための追加の保護レイヤーを提供します。ただし、ローカルシステムと他のリモートホスト間でパスワードなしのSSH認証を構成する場合は、これを空白のままにすることができます。

今のところ、これを空白のままにして、 ENTERを押します。 。

最後に、SSHキーペア( public およびプライベート キー)は、指定されたパスでローカルシステムに保存されます。これは、コマンドが正常に実行された後に生成される出力です。

デフォルトのオプションでは、 SSH キーは~/.sshに保存されます ホームディレクトリ内のディレクトリ。これを確認するには、次のコマンドを実行します:

$ ls -la ~/.ssh
  • id_rsa は秘密鍵であり、秘密にしておく必要があります。それを漏らすと、リモートサーバーの重大な侵害につながる可能性があります。
  • id_rsa.pub は公開鍵であり、接続するリモートホストに保存されます。

SSHを使用 キーが正常に作成されたら、次のステップはパブリックを保存することです 認証の準備ができているリモートシステムの鍵。

SSH公開鍵をリモートLinuxサーバーにコピー

ssh-copy-id コマンドは、SSH公開キーをリモートホストにコピーする簡単で便利な方法を提供します。次の構文が必要です:

$ ssh-copy-id user@remote-host-ip-address

bobという通常のユーザーがいるリモートシステムがあります すでに構成されています。公開SSHキーをコピーするには、次のコマンドを実行します。

$ ssh-copy-id [email protected]

初めてホストに接続する場合は、次の出力が表示されます。続行するには、‘yes’と入力します Enterキーを押して続行します。

このコマンドは、ローカルシステムで公開鍵 id_rsa.pubをプローブします。 プレゼンスが確立されると、リモートユーザーのパスワードの入力を求められます。

パスワードを入力してENTERを押します 。公開鍵は、リモートホストの~/.ssh/authorized_keysにコピーされます。 ファイル。これについては後で説明します。

ローカルシステムでは、~/.ssh/known_hosts ファイルが作成されます。これは、接続したリモートホストのSSHフィンガープリントを含むファイルです。

ファイルを表示するには、次のコマンドを実行するだけです。

$ cat ~/.ssh/known_hosts

パスワードなしのリモートLinuxへの接続

この時点で、パスワードなしでリモートホストにログインできるはずです。試してみるには、通常どおりログインしてみてください。

$ ssh [email protected]

今回は、すぐにリモートホストのシェルに移動します。

先に述べたように、公開鍵は authorized_keysに保存されます リモートホスト上のファイル。図のように確認できます。

$ ls -la ~/.ssh/

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

$ cat ~/.ssh/authorized_keys 

SSHパスワード認証を無効にする

SSH 公開鍵認証が正常に設定されました。ただし、パスワード認証は引き続きアクティブであるため、リモートホストはブルートフォース攻撃を受けやすくなります。

そのため、パスワード認証を無効にすることを強くお勧めします。次に、rootまたはsudoユーザーを使用してリモートホストにログインし直します。次に、 sshd_configを開きます 構成ファイル。

$ sudo vim /etc/ssh/sshd_config

下にスクロールして、 PasswordAuthenticationを見つけます 指令。コメントアウトされている場合は、コメントを解除して'no'に設定します 。

PasswordAuthentication no

変更を保存してファイルを終了します。

加えた変更を適用するには、 sshdを再起動します 示されているデーモン。

$ sudo systemctl restart sshd

この時点で、SSHパスワード認証はリモートサーバーで無効になっており、リモートサーバーにアクセスする唯一の可能な方法は公開鍵認証を使用することです。

SSHが正常に構成されました パスワードなしでログインできるリモートホストでのキーベースの認証。これは、秘密鍵の機密性と秘密性が維持されている場合に、リモートホストにログインする最も安全な方法です。


Rocky Linux
  1. RockyLinux8でプライベートDockerレジストリをセットアップする方法

  2. パスワードなしでSSHログインを設定する方法

  3. LinuxでパスワードなしのSSHを設定する方法

  1. CentOS8でSSHキーを設定する方法

  2. Linux でパスワードなしの SSH ログインをセットアップする方法

  3. Linux で「パスワードなし」の ssh ログイン用に SSH キーをセットアップする方法

  1. パスワードなしのSSHログインを設定する方法

  2. CentOS/RHEL で「パスワードレス」SSH ログイン用の SSH キーをセットアップする方法

  3. Linux で SSH の「公開/秘密鍵」ログイン用の SSH キーをセットアップする方法