Existe uma diferença entre uma chave criptografada (que é protegida por senha) e uma chave não criptografada. Todas as chaves ainda são arquivos de texto simples. Abaixo eu criei uma chave, sem senha, e então a assegurei adicionando uma senha, e você pode ver como o conteúdo do arquivo no disco é diferente:
$ ssh-keygen -f ./id_example
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./id_example.
Your public key has been saved in ./id_example.pub.
The key fingerprint is:
SHA256:q1soNjAdOS7sEu/268wb/F0ULMB7a2tmr/n+089Ksu0 user@host
The key's randomart image is:
+---[RSA 2048]----+
| .. |
| ... . |
| + .. o |
| . o o. .. . |
|. = o .S.. |
| + = .oo |
|. o * ..o.. ... |
| o.+ = +=o .=.. |
| ..oBo+=+=+.ooEoo|
+----[SHA256]-----+
$ cat id_example
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEArxyeUk2lJ+pkW2bHXJNFUfWz1z3glvOsHSUxUQjx8leKIKRu
[hash truncated fro brevity]
hGWfADUrb5nV5Do/mcjBHQDCjrfCpzPHkNrTaZLs4JDxdhX4G0s=
-----END RSA PRIVATE KEY-----
$ ssh-keygen -p -f ./id_example
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
$ cat id_example
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,764EDE56E9A89905CD447F1DEF5ED1AB
uVjfs7qu4a7RMvycvpvtJA0UUG5UtkZ+eY6ppmxL7oA/54qM/7S5bvgOT1hM0wL+
[hash truncated for brevity]
FHCAmqC29+FPHxqG19tII7ndYYU6YDpCQHjUN0TaAI7ikwSmjTiNBfXEZodaHblr
-----END RSA PRIVATE KEY-----
A atual chave é a mesma, mas um agente chave não poderá usar a última chave até que eu a destrave com minha senha. De qualquer forma, eu possuo o arquivo, e ele tem que existir no disco, o que significa que pode ser exibido (por exemplo, com cat
).
Você também pode ver quando exibo a chave revisada que ela mostra explicitamente que está criptografada.