Utilitário do tipo sudo para ssh, ou pelo menos git em particular?

1

Gostaria de manter minhas chaves seguras, mas também não é necessário inserir uma frase-senha em cada invocação git , quando eu quiser executar vários comandos em uma sucessão rápida. Eu pesquisei isso e descobri que o ssh-agent / keychain / etc. ir longe demais conveniência vs segurança-wise ao meu gosto. Algo como xyz git pull seria perfeito, onde xyz verifica se minha chave é descriptografada, e se não for - pergunta pela minha senha, e depois de N minutos sem chamar xyz ela esquece o valor descriptografado. Exatamente como sudo. Isso existe / isso pode ser conseguido através de meios complicados?

Há uma pergunta semelhante sobre isso, mas nossos casos de uso são diferentes.

    
por Olegs Jeremejevs 08.12.2016 / 15:15

1 resposta

5

Isso é exatamente o que o ssh-agent faz.

where xyz checks if my key is decrypted, and if it isn't - asks for my passphrase

Você não precisa de nenhum xyz . Basta iniciar ssh-agent no início de sua sessão (por exemplo, em ~/.bashrc ):

[ -z "$SSH_AUTH_SOCK" ] && eval $(ssh-agent -t 5m)

Configure seu cliente ssh para adicionar as chaves quando elas forem usadas pela primeira vez, definindo

AddKeysToAgent yes

no seu ~/.ssh/config .

and then after N minutes of not invoking xyz it forgets the decrypted value.

Isso é o que a opção -t do ssh-agent faz. Define o tempo limite padrão para as chaves adicionadas (no exemplo acima de 5 minutos).

    
por 08.12.2016 / 15:25