실제로 비밀번호로 보호되어 있는지 테스트하려고 합니다 ~/.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 키 파일의 두 번째 줄을 볼 수 있습니다. 예를 들어:
-----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