Teste se a chave privada SSH possui proteção por senha

1

Estou tentando testar se ~/.ssh/id_rsa está realmente protegido por senha.

Quando você executa ssh-keygen , pode escolher uma senha vazia e estou tentando detectar isso.

Isso é possível com um one-liner?

    
por daisy 29.06.2017 / 10:33

3 respostas

3

Se você abrir o arquivo de chave privada no editor de texto, poderá ver ENCRYPTED na segunda linha do arquivo de chave RSA / DSA. Por exemplo:

 -----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,373B504621779D53C72BADE597C531A0
    
por 29.06.2017 / 10:44
3

Se você executar:

ssh-keygen -y -f ~/.ssh/name_of_key

você receberá a chave impressa se não houver uma senha como esta:

ssh-keygen -y -f ~/.ssh/id_dsa
ssh-dss AAAAB3NzaC1kc3M....

Se houver senha da chave, você será perguntado por ela

    
por 29.06.2017 / 10:42
0

Eu não tenho reputação suficiente para comentar, então eu adiciono aqui.

Graças a @ Ulrich-Schwarz, eu estendi sua resposta para checar todas as minhas chaves (a que eu gerou, então eu tenho o par puublic / private) no meu $ 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 "YES password: "
   else
       echo -n "NO  password: "
   fi
   echo ${key}
done
    
por 27.11.2018 / 13:54

Tags