ssh-keyscanコマンドは-tオプションで動作しますが、Known_hostsファイルではどのように機能しますか?

ssh-keyscanコマンドは-tオプションで動作しますが、Known_hostsファイルではどのように機能しますか?

ssh-keyscanコマンドに関して-t次のようにoptionsで実行される場合:

ssh-keyscan -t ecdsa 192.168.1.X

次の推定データを返します。

# 192.168.1.X:22 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3
192.168.1.X ecdsa-sha2-nistp256 XxXxXxX...XxXxXxX

上記のコマンドは、同じLAN上の6つの異なるIPでテストされ、すべてがうまく機能しました。また、ed25519キータイプを使用してrsa同じ成功した結果を得ました。たとえば、次のようになります。

ssh-keyscan -t ed25519 192.168.1.X
ssh-keyscan -t rsa 192.168.1.X

ここまでの-tオプションは - を意味します。タイプ- フィルターとしてうまく機能します。この時点で、私はこのオプションを明確に理解しました-t

ノート

フィルタがないか、キータイプが表示されません。この-tオプションは使用されません。したがって、次のようになります。

ssh-keyscan 192.168.1.X

特定のIPに対して返されるデータには3つのキータイプが含まれます。


私はいくつかのチュートリアルでこのオプションについて読んでい-tますが、今私は~/.ssh/known_hostsファイルを使用しています。

これで~/.ssh/known_hosts、次のコマンドを使用してファイルとエントリを挿入しました。

ssh-keyscan -H 192.168.1.X >> ~/.ssh/known_hosts

この-Hオプションを見てください。ホスト名/ IPのハッシュで動作します。もちろん、同じLAN上の6つの異なるIPに対して同じコマンドが6回実行されました。

次のコマンドを実行します。

ssh-keyscan -t <KEY> -f ~/.ssh/known_hosts

どこrsaまたはecdsaのいずれかです。ed25519

出力は次のとおりです(約N行)。

getaddrinfo |1|XxXxXxX=|XxXxXxX=: Name or service not known
...
getaddrinfo |1|ZzZzZzZ=|ZzZzZzZ=: Name or service not known

ホスト名/IPがハッシュされているため、これが予想されるようです。間違っていたら訂正してください。

現在のコンテンツを保持そしてこの6つのIPに対して同じコンテンツを再追加しますが、ハッシュは除外します。

ssh-keyscan 192.168.1.X >> ~/.ssh/known_hosts

あることを観察してください。いいえオプション-H。次に、次のコマンドを実行すると:

ssh-keyscan -t ecdsa -f ~/.ssh/known_hosts

これで、2つのチャンクのデータを見ることができます。

一つ

getaddrinfo |1|XxXxXxX=|XxXxXxX=: Name or service not known

これが予想されるものかどうかはわかりません。古いコンテンツがまだファイルにあることに注意してください。したがって、上記の内容は、フィルタ要求に一致するキータイプに基づいていると仮定します。もう一度申し上げますが、間違っている場合は訂正してください。

二つ(これ質問そしてこの記事を書いた理由)

For each IP appears all the keys

理論的には、以下に基づくデータのみを見ることができます。ろ過--tオプションでキータイプを定義します。

質問

  • ブロック2はフィルタリングする必要がありますか?何が欠けていますか?それとも何か問題がありますか?

ノート

このチュートリアルで使用されるコマンドは次のとおりです。

ssh-keyscan -t <KEY> -f ~/.ssh/known_hosts | sort -u ~/.ssh/known_hosts

しかし、パイプラインの前の最初の部分をよく理解したいと思います(|)。

関連情報