~/.ssh/authorized_keys[2] には公開鍵のリストが含まれています。
残念ながら、各公開鍵には鍵強度(ビット数)が指定されていません。
このファイルを1行ずつ処理してキー強度を出力するユーティリティはありますか?
マニュアルページを確認しましたが、秘密ssh-keygen
鍵としてのみ機能しているようです。
pageant
また、Puttyツールに表示される方法でsha1ハッシュを出力できるツールはありますか?
私が望む形式は次のとおりです。
Key Algorithm Strength Hash Comment
ssh-rsa 2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff user1@host1
ssh-rsa 2048 11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:11 user2@host2
ベストアンサー1
SSHキージェネレータタスクの中核は完了しましたが(公開鍵から指紋を生成します)、通常、ファイルに見られるように、複数の鍵のリストを自動的に処理するわけではありませんauthorized_keys
。
以下は、キーを分割してキーを供給するスクリプトです。SSHキージェネレータ目的のテーブルを作成します。
#!/bin/sh
# usage: authkeys-report <authorized_keys-file>
set -ue
tmp="$(mktemp -t fingerprint-authkeys.XXXXXXXX)"
trap 'rm -f "$tmp"' 0
while read opts key; do
case "$opts" in
[0-9]*|ssh-dss|ssh-rsa)
# not options, first "word" is part of key
key="$opts $key"
;;
esac
echo "$key" >$tmp
set -- $(ssh-keygen -lf "$tmp")
bits="$1" fingerprint="$2"
set -- $key # Note: will mangle whitespace in the comment
case "$1" in
[0-9]*) # SSH v1 key
type=rsa1
shift 3
;;
ssh-rsa|ssh-dss) # SSH v2 key
type="$1"
shift 2
;;
*)
type=unknown
set --
;;
esac
printf '%-14s %-9s %s %s\n' "$type" "$bits" "$fingerprint" "$*"
done <$1