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-rsa
RSAとSHA-1(署名アルゴリズム、安全ではない)の自動使用のサポートを中止しましたが、まだRSAとSHA-2(rsa-sha2-256
およびSHA-2 rsa-sha2-512
)をサポートしています。時々、人々は既知のセキュリティリスクにもかかわらず、設定でアルゴリズムを再度有効にすることを選択し、人々ssh-rsa
が使用する一般的なパターンのために、そのアルゴリズムはリストの上に置かれます。したがって、このシステムでは、~/.ssh/config
これらの設定を有効にしたり、/etc/ssh/ssh_config
RSAキーを優先したりすることができます。
答え2
あなたは選ぶことができますパスワード存在するsshd_config
。使用量が多いサーバーや古いサーバーでは、管理者はCPU使用率の低い暗号スイートを提供できます。サーバーとクライアントは最終的に両方をサポートするテクノロジに同意する必要があるため、Webサイトと各クライアントブラウザへの接続を保護する交渉でも同様のことが起こります。したがって、ユーザーはある程度影響力を持っています(ssh_config
)。
/etc/ssh/sshd_config
見たいならサーバーにいます。
以下を使用してサーバーを調査できます。SSHキースキャン。ねえ:https://serverfault.com/questions/934072/how-to-view-ecdsa-host-key-of-a-server