Como faço para verificar / verificar / testar / validar minha senha SSH?

297

Acho que esqueci a senha da minha chave SSH, mas tenho um palpite sobre o que pode ser. Como verifico se estou certo?

joachim
fonte
5
É um passphrase, sem senha;)
Timo

Respostas:

123

Você pode verificar sua senha de chave SSH tentando carregá-la no seu agente SSH. Com o OpenSSH, isso é feito via ssh-add.

Quando terminar, lembre-se de descarregar sua senha SSH do terminal executando ssh-add -d.

Ignacio Vazquez-Abrams
fonte
13
Assim que estiver pronto verificação, descarregar a sua chave de senha SSH de seu agente de SSH comssh-add -d
Kache
1
O ssh-add requer direitos de administrador na máquina, eu acho. Estou recebendo um erro: "Não foi possível abrir uma conexão com seu agente de autenticação".
IgorGanapolsky
@IgorGanapolsky: Não, requer um agente de autenticação em execução. Modifique os scripts ou opções de inicialização para abrir um.
Ignacio Vazquez-Abrams
20
A resposta de Rob é a resposta correta.
Mgarciaisaia
Se você estiver usando o selinux, verifique também o contexto do diretório inicial e dos arquivos .ssh! Tive a sorte de poder usar esta correção simples: # restorecon -R -v /home/userPara verificar se esse é o problema (embora o comando anterior não deva causar problemas), você pode usar $ ls -lZR <home_dir>para examinar o contexto. Se você não vir user_home_tno diretório inicial e ssh_home_tno .sshdiretório e authorized_keysarquivo, use-o restoreconpara corrigi-los.
Fbicknel 21/11/19
523

ssh-keygen -y

ssh-keygen -y solicitará a senha (se houver uma).

    Se você digitar a senha correta , ela mostrará a chave pública associada.
    Se você digitar a senha incorreta , ela será exibida load failed.
    Se a chave não tiver uma senha, ela não solicitará uma senha e mostrará imediatamente a chave pública associada.

por exemplo,

Crie um novo par de chaves pública / privada, com ou sem uma senha:

$ ssh-keygen -f /tmp/my_key
...

Agora veja se você pode acessar o par de chaves:

$ ssh-keygen -y -f /tmp/my_key


A seguir, um exemplo estendido, mostrando a saída.

Crie um novo par de chaves pública / privada, com ou sem uma senha:

$ ssh-keygen -f /tmp/my_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/my_key.
Your public key has been saved in /tmp/my_key.pub.
The key fingerprint is:
de:24:1b:64:06:43:ca:76:ba:81:e5:f2:59:3b:81:fe [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|     .+          |
|   . . o         |
|    = . +        |
|   = + +         |
|  o = o S .      |
|   + = + *       |
|    = o o .      |
|     . .         |
|      E          |
+-----------------+

Tente acessar o par de chaves inserindo a senha correta. Observe que a chave pública será mostrada e o status de saída ( $?) 0indicará sucesso:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBJhVYDYxXOvcQw0iJTPY64anbwSyzI58hht6xCGJ2gzGUJDIsr1NDQsclka6s0J9TNhUEBBzKvh9nTAYibXwwhIqBwJ6UwWIfA3HY13WS161CUpuKv2A/PrfK0wLFBDBlwP6WjwJNfi4NwxA21GUS/Vcm/SuMwaFid9bM2Ap4wZIahx2fxyJhmHugGUFF9qYI4yRJchaVj7TxEmquCXgVf4RVWnOSs9/MTH8YvH+wHP4WmUzsDI+uaF1SpCyQ1DpazzPWAQPgZv9R8ihOrItLXC1W6TPJkt1CLr/YFpz6vapdola8cRw6g/jTYms00Yxf2hn0/o8ORpQ9qBpcAjJN
$ echo $?
0

Tente acessar o par de chaves inserindo uma senha incorreta. Observe que a mensagem de erro "falha no carregamento" será exibida (a mensagem pode variar dependendo do SO) e o status de saída ( $?) 1indicará um erro:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
load failed
$ echo $?
1

Tente acessar um par de chaves que não possui senha. Observe que não há solicitação para a senha, a chave pública será exibida e o status de saída ( $?) será 0para indicar sucesso:

$ ssh-keygen -y -f /tmp/my_key_with_no_passphrase
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLinxx9T4HE6Brw2CvFacvFrYcOSoQUmwL4Cld4enpg8vEiN8DB2ygrhFtKVo0qMAiGWyqz9gXweXhdmAIsVXqhOJIQvD8FqddA/SMgqM++2M7GxgH68N+0V+ih7EUqf8Hb2PIeubhkQJQGzB3FjYkvRLZqE/oC1Q5nL4B1L1zDQYPSnQKneaRNG/NGIaoVwsy6gcCZeqKHywsXBOHLF4F5nf/JKqfS6ojStvzajf0eyQcUMDVhdxTN/hIfEN/HdYbOxHtwDoerv+9f6h2OUxZny1vRNivZxTa+9Qzcet4tkZWibgLmqRyFeTcWh+nOJn7K3puFB2kKoJ10q31Tq19
$ echo $?
0
Rob Bednark
fonte
2
Se não houver senha, apenas imprimirá a chave pública associada.
Kyrremann 27/10/16
1
Obrigado @Kyrremann! Atualizei a resposta para refletir isso.
precisa saber é o seguinte
ssh-keygen -ysolicita o arquivo de chave e oferece um padrão quando clicar em retornar, como seria de esperar.
Timo
Eu costumava ssh-keygen -yverificar a senha da minha chave ssh. Funcionou bem, exceto que meu Ubuntu se tornou incrivelmente lento. A maioria dos programas pode iniciar em um minuto ou mais, enquanto o uso da CPU é de 100%. Depois de reiniciar meu laptop, eu mal conseguia entrar, pois levou alguns minutos para ver minha área de trabalho. Finalmente encontrei esse problema no Ask Ubuntu . Eu tive que começar por gnome-keyring-daemonresolver o problema.
Adam Fónagy
2

Estendendo a solução do @ RobBednark para um cenário específico do Windows + PuTTY, você pode:

  1. Gere um par de chaves SSH com PuTTYgen (seguindo Gerando manualmente sua chave SSH no Windows ), salvando-a em um arquivo PPK;

  2. Com o menu de contexto no Windows Explorer, escolha Editar com PuTTYgen. Ele solicitará uma senha.

Se você digitar a senha errada, ela será solicitada novamente.

Note, se você gosta de escrever, use o seguinte comando em uma pasta que contém o arquivo PPK: puttygen private-key.ppk -y.

kokbira
fonte
0

Use "ssh-keygen -p". Você pode adicionar "-f"

Ele solicitará a senha antiga. Se a senha estiver correta, será solicitado que você digite uma nova senha. Se a senha antiga estiver incorreta, você receberá "Falha ao carregar a chave <...>".

Alex F
fonte
-1

Se sua senha é para desbloquear sua chave SSH e você não possui ssh-agent, mas o sshd (o daemon SSH) instalado em sua máquina, faça:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;
ssh localhost -i ~/.ssh/id_rsa

Onde ~/.ssh/id_rsa.pubestá a chave pública e ~/.ssh/id_rsaa chave privada.

Alexx Roche
fonte
1
Ele não pede uma frase secreta fazendo isso
Imme22009
Ele para mim, para desbloquear o id_rsa privada para localhost ssh
Alexx Roche
Eu recebo um erro: "ssh: conectar-se à porta localhost do host 22: número do arquivo inválido"
IgorGanapolsky