SSH 개인 키가 비밀번호로 보호되어 있는지 테스트

SSH 개인 키가 비밀번호로 보호되어 있는지 테스트

실제로 비밀번호로 보호되어 있는지 테스트하려고 합니다 ~/.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

프라이빗 키 파일을 텍스트 편집기에서 열면 ENCRYPTEDRSA/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

관련 정보