ssh-keygen コマンドを使用して、公開/秘密認証キー ペアを生成します。認証キーを使用すると、ユーザーはパスワードを入力せずにリモート システムに接続できます。キーは、ユーザーごとに個別に生成する必要があります。 root ユーザーとして鍵ペアを生成すると、root だけが鍵を使用できます。
次の例では、RSA キーの公開部分と秘密部分を作成します:
# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:z6zTVQ/PJYt2o96DrVYClmfcqBG8Pdb8nzqY2m2HjeY root@geeklab The key's randomart image is: +---[RSA 2048]----+ | . | | o | | * = | | * O B .| | S. B + O.| | +. = = =| | .+ooB+.o| | ..oo=Bo+.| | .o.+*E=. | +----[SHA256]-----+
–t オプションを使用して、作成するキーのタイプを指定します。可能な値は「rsa1」です 」、プロトコル バージョン 1 の場合は「dsa」 「、」ecdsa 」、または「rsa」 」はプロトコル バージョン 2 の場合です。
鍵の秘密部分を暗号化するパスフレーズを指定するオプションがあります。個人キーを暗号化する場合は、キーを使用するたびにパスフレーズを提供する必要があります。これにより、あなたの秘密鍵にアクセスできる攻撃者が、あなたになりすまして、アクセスできるすべてのコンピューターにアクセスするのを防ぐことができます。攻撃者は引き続きパスフレーズを提供する必要があります。
この例の ssh-key コマンドは、~/.ssh ディレクトリに 2 つのキーを生成しました:
$ ls ~/.ssh id_rsa id_rsa.pub
パスワードを入力せずにリモート システムにログオンまたはファイルをコピーするには、公開鍵 (この例では ~/.ssh/id_rsa.pub) をリモート システムの ~/.ssh/authorized_keys にコピーします。リモート ~/.ssh を設定します 700 までのディレクトリ権限 .その後、ssh または scp ツールを使用して、パスワードを入力せずにリモート システムにアクセスできます。
複数の接続を許可するには、公開鍵をコピーするのではなく、リモート システムのauthorized_keysファイルに追加します。次の例では、公開鍵を追加しています:
$ cat id_rsa.pub >> authorized_keys
標準のパスワード認証を無効にし、キーベースの認証を強制することで、システムのセキュリティをさらに向上させることができます。これを行うには、/etc/ssh/sshd_config で PasswordAuthentication オプションを no に設定します。 構成ファイルは次のとおりです:
# vi /etc/ssh/sshd_config PasswordAuthentication no
これにより、キーが authorized_keys にないユーザーは許可されなくなります ssh経由で接続するサーバー上の特定のユーザーのファイル。接続が拒否され、次のメッセージが表示されます:
$ ssh host01 Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
PasswordAuthentication オプションをデフォルトの yes に設定すると、ユーザーは認証にパスワードを使用できます。