実際にパスワードで保護されているかどうかをテストしようとしています~/.ssh/id_rsa
。
実行時にssh-keygen
空のパスワードを選択できます。これを検出しようとしています。
一行でこれを行うことはできますか?
答え1
実行される場合:
ssh-keygen -y -f ~/.ssh/name_of_key
パスワードがない場合は、次のように印刷キーを受け取ります。
ssh-keygen -y -f ~/.ssh/id_dsa
ssh-dss AAAAB3NzaC1kc3M....
キーパスワードがある場合は、入力するように求められます。
答え2
プライベートキーファイルをテキストエディタで開くと、ENCRYPTED
RSA / DSAキーファイルの2行目が表示されます。たとえば、
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,373B504621779D53C72BADE597C531A0
答え3
コメントするには評判が足りないのでここに追加します。
@Ulrich-Schwarzのおかげで、$ HOME / .ssh /のすべてのキーを確認するように彼の答えを拡張しました(公開/プライベートペアになるようにキーを生成しました)。
for l in $(ls $HOME/.ssh/*.pub)
do key=${l%.*}
if SSH_ASKPASS=/bin/false ssh-keygen -y -f $key < /dev/null > /dev/null 2>&1
then
echo -n "NO password: "
else
echo -n "YES password: "
fi
echo ${key}
done