Esqueceu a senha de uma chave SSH criptografada que está no meu agente SSH (gnome). Como faço para extrair versão não criptografada? [fechadas]

4

OK, eu tenho uma chave privada ssh criptografada que fornece acesso a um servidor. Meu desktop Ubuntu GNOME possui um agente ssh gráfico integrado (seahorse v3.2.2). Essa chave ssh está nesse agente ssh e é automaticamente desbloqueada quando eu faço login na minha área de trabalho. Eu posso ssh no servidor (que usa essa chave privada ssh criptografada) bem, sem ter que digitar nada.

No entanto, esqueci a senha dessa chave ssh.

Existe alguma maneira de extrair (do agente ssh) a chave privada ssh não criptografada? Como sou capaz de fazer login no servidor com qualquer coisa, é claramente possível que algo no meu computador acesse a versão não criptografada dessa chave, portanto, deve ser possível extrair a versão não criptografada, não?

    
por Rory 08.03.2013 / 13:01

3 respostas

2

Por design, você não pode. A ideia da frase secreta é proteger a senha sensível de olhares indiscretos com acesso ao disco.

    
por 08.03.2013 / 13:24
2

Eu acho que a senha da sua chave ssh está no seu chaveiro gnome. Isso pode ajudá-lo a extraí-lo.

    
por 08.03.2013 / 17:04
1

Não sei se entendi sua pergunta corretamente:

Eu não entendo porque o servidor remoto "usa essa chave privada ssh criptografada", você fala dele como se fosse a mesma chave privada criptografada em sua área de trabalho ?? porque??

Se eu omitir esta frase (e o servidor remoto apenas tiver sua chave PUBLIC no arquivo autorizado_keys relevante do login remoto), então:

  • você (supostamente) esqueceu a senha de sua chave privada local
  • você tem um agente que inicia na inicialização e que automaticamente lhe dá acesso à chave (isto é, ele pode usá-lo para conceder acesso quando você está se conectando via ssh ao servidor remoto, que provavelmente tem sua chave pública). Assim, o agente conhece a frase secreta e pode descriptografar sua chave privada local.

    • tem a certeza de que a chave privada está encriptada? (você pode parar o agente e tentar:

      ssh -i /path/to/theprivatekey remoteuser@remoteserver

    • se a chave realmente estiver criptografada: o agente que é executado na inicialização aparentemente tem uma maneira de fornecer sua senha. Eu não conheço esse agente, mas talvez seja através de um arquivo de configuração (espero que não), e talvez através de algum outro mecanismo (ele poderia ter outra criptografia que mantém as senhas privadas? Protegidas de alguma forma, talvez através de suas próprias credenciais de login ?) Mas: uma vez carregado e usando-o (ou seja, pelo menos quando acessando o servidor ssh remoto) ele tem em um ponto a chave ssh privada não criptografada na memória. Nesse ponto, você poderá lê-lo se tiver acesso raiz à sua máquina local acessando o RAM (mas terá que descobrir como e onde procurar).

Espero que isso ajude (e, por favor, esclareça as partes obscuras da sua pergunta ou corrija minhas suposições!)

Edit: outras opções, e muito mais simples: aquele agente lhe concede acesso: use isso para recriar um novo par de chaves privadas / públicas, e coloque essa nova chave pública (no formato apropriado! dependendo do tipo de sshd remoto) servidor!) no arquivo authorized_keys do remoteuser @ remoteserver. ALÉM DO atual (aquele que seu agente está usando). Para que você sempre possa usar o agente e também usar o novo par de chaves públicas (local) privado (local). (leia sobre o ssh e como criar essas chaves e o que fazer com a chave pública (ou seja, coloque nos locais que você precisa fazer login) e privado (ou seja: mantenha SEGURO, SEUS OLHOS SOMENTE, NÃO WORLD READABLE, mesmo se criptografado com uma senha).

    
por 08.03.2013 / 16:51