ホスト名リストを使用して.ssh/known_hostsの暗号化されたホスト名を復号化するには?

ホスト名リストを使用して.ssh/known_hostsの暗号化されたホスト名を復号化するには?

スクリプトを見つけようとしています。復号(ハッシュされない) Known_hosts ファイルの SSH ホスト名ホスト名のリストを渡すことで

だからまさに反対:

ssh-keygen -H -f known_hosts

または、SSH の設定 HashKnownHosts が No に設定されている場合は、次の手順を実行します。

ssh-keygen -R know-host.com -f known_hosts
ssh-keyscan -H know-host.com >> known_hosts

ただし、ホストキーを再ダウンロードする必要はありません(ssh-keyscanのため)。

それは次のとおりです。

ssh-keygen --decrypt -f known_hosts --hostnames hostnames.txt

ここで、hostnames.txt にはホスト名のリストが含まれています。

ベストアンサー1

の行はknown_hosts暗号化されずにハッシュされます。暗号化されていないため復号できません。あなたはそれらを「ハッシュ解除」することはできません。ハッシュそれがすべてです。ハッシュが与えられると、元の文字列を見つけることは不可能です。 「ハッシュを解放」する唯一の方法は、元の文字列を推測して推測を確認することです。

ホスト名のリストがある場合は、それを渡してssh-keygen -Fホスト名に置き換えることができます。

while read host comment; do
  found=$(ssh-keygen -F "$host" | grep -v '^#' | sed "s/^[^ ]*/$host/")
  if [ -n "$found" ]; then
    ssh-keygen -R "$host"
    echo "$found" >>~/.ssh/known_hosts
  fi
done <hostnames.txt

1実用的な意味では、今日存在するすべてのコンピュータは、この作業を完了するのに現在の宇宙時代よりも長い時間がかかります。

おすすめ記事