Linuxオタクの皆さん、Linuxシステムはパスワードではなくキーを使用してssh接続することをお勧めします。 SSH(Secure Shell)キーは、LinuxおよびUNIXライクなサーバーにログインするための安全な方法を提供します。 SSHキーを使用してLinuxシステムにアクセスする場合、パスワードなしのssh認証とも呼ばれます。
この投稿では、Linuxでキーを使用してパスワードなしのSSH認証を設定する方法を学習します。
ラボのセットアップの詳細:
- ジャンプホスト(Rocky Linux)— SSHクライアント— 192.168.1.135
- リモートLinuxシステム(Ubuntu 20.04)— 192.168.1.130
手順を詳しく見ていきましょう。
ステップ1)ssh-keygenコマンドを使用してJumpホストでSSHキーを生成します
ジャンプホストにログインします。私の場合は「sysadm」を使用しています。 ssh-keyenコマンドを実行して、rsaアルゴリズムを使用してsysadmの公開鍵と秘密鍵を生成します
$ ssh-keygen -t rsa
このコマンドは、公開鍵と秘密鍵のパスを入力するように求めるプロンプトを表示します。デフォルトのパスを維持する場合は、Enterキーを押し、パスフレーズの設定を求めるプロンプトが表示されたらEnterキーを押します。
ssh-keygenコマンドの出力は次のようになります
注:デフォルトでは、ssh-keygenコマンドは2048ビットのサイズのキーを生成します。キーのサイズを変更する場合は、「-b」オプションに続けてビット単位のサイズを使用します。例を以下に示します
$ ssh-keygen -t rsa -b 4096
ステップ2)ユーザーの公開鍵をリモートLinuxシステムにコピーする
「ssh-copy-id」コマンドを使用して、ユーザーの公開鍵をリモートLinuxシステムユーザーのauthorized_keysファイルにコピーします。
構文:ssh-copy-id
$ ssh-copy-id [email protected]
出力
ステップ3)パスワードなしのssh認証をテストする
次に、ジャンプホストからリモートシステムをSSH接続してみます。
$ ssh [email protected]
出力、
上記の出力は、パスワードを指定せずにリモートシステムにログインできることを示しています。
パスワードなしの認証を設定する際に考慮すべき重要なポイントは次のとおりです。
- キーを交換してテストしたら、rootログインとrootおよび他のユーザーのパスワードベースの認証を無効にする必要があります。
これを実現するには、「/ etc / ssh / sshd_config」ファイルを編集して、次のパラメータを設定します。
PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication no UsePAM yes
ファイルを保存して終了し、以下のsystemctlコマンドを使用してsshサービスを再起動します。
$ sudo systemctl restart sshd
- もう1つの重要な点は、リモートユーザー(この場合は「kadmin」)がsudoグループの一部であり、管理タスクを実行できるように管理者権限を持っている必要があるということです。
この投稿からのすべてです。参考になると思います。質問とフィードバックを下のコメントセクションにドロップしてください。
また読む :Linuxでの10のiftopコマンドの例