私の~/.ssh/known_hostsにどの公開鍵が追加されますか?

私の~/.ssh/known_hostsにどの公開鍵が追加されますか?

RHEL 8.3サーバーがあり、以下はフォルダの内容です/etc/ssh

[root@192 ssh]# pwd
/etc/ssh
[root@192 ssh]# tree -a
.
├── moduli
├── ssh_config
├── ssh_config.d
│   └── 05-redhat.conf
├── sshd_config
├── ssh_host_ecdsa_key
├── ssh_host_ecdsa_key.pub
├── ssh_host_ed25519_key
├── ssh_host_ed25519_key.pub
├── ssh_host_rsa_key
└── ssh_host_rsa_key.pub

1 directory, 10 files
[root@192 ssh]#

私はserver1からサーバーにsshを実行すると、RSA公開鍵(ssh_host_rsa_key.pub)がserver1の~/.ssh/known_hostsファイルに追加されることがわかりました。ただし、別のサーバーserver2を試してみると、ECDSA公開鍵(ssh_host_ecdsa_key.pub)が追加されます~/.ssh/known_hosts。なぜ違いがありますか?どの公開鍵を使用するかはどのように決定されますか?

ベストアンサー1

SSHプロトコルでは、パスワード、MAC、鍵交換、ホスト鍵、公開鍵に使用されるアルゴリズムを独立してネゴシエートできます。ほとんどの場合、選択されたアルゴリズムはサーバーでもサポートされる最初のクライアント側アルゴリズムです。

通常、サーバーには複数のホストキーがあり、使用されるホストキーの選択はネゴシエートされたアルゴリズムによって異なります。 OpenSSHの最新バージョンはEd25519キーを好み、それ以前はECDSAキーを好みます。ただし、OpenSSHにはホストキーを使用するための特別な構成がなく、ホストファイルに1つ以上のホストキーがわかっている場合は、デフォルトのクライアントアルゴリズムをオーバーライドしてキーを知っているホストキーを優先するという特別な規則があります。つまり、サーバーが新しいホストキーを追加すると、ユーザーにホストキーの警告は表示されません。

前に述べたように、通常、Ed25519 および ECDSA キーが好ましい。ただし、OpenSSHは最近ssh-rsaRSAとSHA-1(署名アルゴリズム、安全ではない)の自動使用のサポートを中止しましたが、まだRSAとSHA-2(rsa-sha2-256およびSHA-2 rsa-sha2-512)をサポートしています。時々、人々は既知のセキュリティリスクにもかかわらず、設定でアルゴリズムを再度有効にすることを選択し、人々ssh-rsaが使用する一般的なパターンのために、そのアルゴリズムはリストの上に置かれます。したがって、このシステムでは、~/.ssh/configこれらの設定を有効にしたり、/etc/ssh/ssh_configRSAキーを優先したりすることができます。

おすすめ記事