Existe alguma maneira de fazer o Ubuntu lembrar minha senha de chave ssh? [duplicado]

3

Toda vez que eu tento logar em um servidor remoto via SSH ou tentar git pull / push em um repositório git eu recebo o prompt:

Enter passphrase for key '/home/th0th/.ssh/id_rsa':

Eu quero adicionar minha chave ao chaveiro e eu quero que o chaveiro seja destravado quando eu fizer o login sem que seja pedida a senha (acho que esse foi o comportamento padrão no gnome-shell no Arch Linux). Eu tentei adicionar minha chave usando seahorse , mas até minha chave está visível em Gnome2 Key Storage category em seahorse Eu recebo a solicitação da minha senha no terminal. Isso é um bug ou estou faltando um passo aqui?

EDIT: Evitar que cavalos-marinhos solicitem senha é outro problema. Meu problema é que, as senhas de chaves SSH não são lembradas pelo chaveiro gnome.

Estou em 15.04 BTW.

    
por Gokhan Sari 28.04.2015 / 02:02

1 resposta

0

O problema principal é que você tem uma chave SSH protegida por senha. O que isto significa é que a chave privada é realmente criptografada e precisa ser descriptografada para uso, daí a necessidade de uma frase secreta. (Essa mesma lógica se aplica a ações-chave do PGP, como assinatura, onde você precisa usar a chave privada para gerar uma assinatura). Deve haver um agente de autenticação SSH, ou pelo menos um agente que trabalhe com o gnome-keyring (14.04) que estaria lidando com os 'prompts' e 'gnome-keyring', entretanto considere que nem sempre é o caso quando se trabalha em um Ambiente CLI.

O Seahorse deve apresentar suas chaves SSH em "Secure Shell" e nada mais, o que pode estar causando um problema. Mas a questão principal é que a metade da chave privada da chave SSH é criptografada e protegida por senha, e a senha é necessária para iniciar a seção de negociação 'segura' com a chave. No entanto, na verdade não é seahorse que controla a autenticação, na verdade é parte de gnome-keyring que tem que memorizar as coisas. Embora deva ser capaz de lembrar sua senha, ela aparentemente não é capaz de operar da maneira necessária para fornecer uma solicitação de GUI para inserir a senha e depois armazená-la no chaveiro.

A única maneira verdadeira de remover a solicitação de senha em todos os casos é remover a senha da chave SSH. Embora as chaves SSH devam ter as senhas idealmente como uma camada adicional de proteção, o ideal é que você armazena apenas a senha da chave privada durante a sessão ou a duração da sessão da GUI até você fazer logoff ou reinicializar, ou até mesmo idealmente durante o curto período de tempo em que você está fazendo a autenticação da chave SSH . Isso é feito para fins de segurança, mas em alguns casos não é viável ou necessário.

Se você deseja remover a senha da sua chave SSH, será necessário seguir estas etapas: ( source )

  1. Remova a frase secreta.

    openssl rsa -em ~ / .ssh / id_rsa -out ~ / .ssh / id_rsa_new

  2. Faça backup e substitua sua chave SSH privada.

    mv ~ / .ssh / id_rsa ~ / .ssh / id_rsa.backup mv ~ / .ssh / id_rsa_new ~ / .ssh / id_rsa

  3. Defina permissões de chave, pois as chaves privadas são legíveis apenas pelo proprietário (isto é aplicado ao OpenSSH)

    chmod 400 ~ / .ssh / id_rsa

  4. Teste a conexão via SSH e não deve haver solicitação de senha.

O
por Thomas Ward 28.04.2015 / 03:40