ssh-keyscan -H externalIpExample
localhostから直接この値を生成するにはどうすればよいですか(ネットワークアクセスは必要ありませんか?)
1 つの特定のホストに 2 つの公開鍵があります。/etc/ssh
どちらも動作しますか?
ls /etc/ssh/*.pub
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key.pub
答え1
私が正しく理解し、あなたがポート22でリッスンしていると仮定すると、ssh
次localhost
のようになります。
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