localhostからSSHホストキー "known_hosts"の値を取得するには?

localhostからSSHホストキー "known_hosts"の値を取得するには?

ssh-keyscan -H externalIpExamplelocalhostから直接この値を生成するにはどうすればよいですか(ネットワークアクセスは必要ありませんか?)

1 つの特定のホストに 2 つの公開鍵があります。/etc/sshどちらも動作しますか?

ls /etc/ssh/*.pub
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key.pub

答え1

私が正しく理解し、あなたがポート22でリッスンしていると仮定すると、sshlocalhostのようになります。

awk '{print "[localhost]:22 " $1 " " $2}' /etc/ssh/ssh_host_ecdsa_key.pub

アイテムknown_hostsが印刷されます。一部のSSH実装はの項目を難読化します~/.ssh/known_hostsが、上記のコマンドはそうではありません。

# awk '{print "[localhost]:22 " $1 " " $2}' /etc/ssh/ssh_host_ecdsa_key.pub
[localhost]:22 ecdsa-sha2-nistp256 AAAAE2............g7vPmspiyg=

答え2

この質問は少し曖昧ですが、すでにシェルアクセス権を持っているシステムでsshホスト公開鍵を検索したい場合(このようなシェルを使用していると仮定)、一般的に次のようなものが便利です。 :

ssh-keyscan `hostname -f` -H

...しかし、ユースケースとホスト参照方法によっては、hostname特定のIPアドレスを置き換えたり使用したりする方が良いかもしれませんhostname -f

代わりに、以前に記録されたホストキーエントリをKnown_hostsファイルで見つけるには、次の方法を使用できます。

ssh-keygen -F name.or.ip.address.of.remote.host -f  ~/.ssh/known_hosts

関連情報