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