Como faço para remover a senha para a chave SSH sem ter que criar uma nova chave?
-
02-07-2019 - |
Pergunta
eu definir uma senha ao criar uma nova chave SSH no meu laptop. Mas, como eu percebo agora, isso é muito doloroso quando você está tentando cometer ( Git e SVN ) para um local remoto através de SSH muitas vezes em uma hora.
Uma maneira que eu posso pensar é, apagar minhas chaves SSH e criar novos. Existe uma maneira de remover a senha, mantendo as mesmas chaves?
Solução
Resposta curta:
$ ssh-keygen -p
Este, então, pedir-lhe para inserir a localização do arquivo de chaves, a velha senha e a nova senha (que pode ser em branco esquerdo não ter nenhuma senha).
Se você gostaria de fazer tudo em uma linha sem prompts fazer:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
Importante: Tenha em atenção que ao executar comandos que normalmente será registrado no seu arquivo ~/.bash_history
(ou similar) em texto simples, incluindo todos os argumentos fornecidos (ou seja, das senhas, neste caso). é, portanto, recomenda-se que você use a primeira opção a menos que você tenha uma razão específica para fazer o contrário. Aviso no entanto, que você ainda pode usar -f keyfile
sem ter que especificar -P
nem -N
, e que os padrões keyfile para ~/.ssh/id_rsa
, assim, em muitos casos nem mesmo é necessário.
Você pode querer considerar o uso de ssh-agente, que pode armazenar em cache a senha para um tempo. As últimas versões do gpg-agent também suportam o protocolo que é usado por ssh-agente.
Outras dicas
Você pode querer adicionar o seguinte ao seu .bash_profile (ou equivalente), que começa ssh-agente no login.
if [ -f ~/.agent.env ] ; then
. ~/.agent.env > /dev/null
if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent… "
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent"
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
Em algumas distribuições Linux (Ubuntu, Debian), você pode usar:
ssh-copy-id -i ~/.ssh/id_dsa.pub username@host
Isto irá copiar o ID gerado para uma máquina remota e adicioná-lo ao chaveiro remoto.
$ ssh-keygen -p
trabalhou para mim
Inaugurado o bash git. Colado: $ ssh-keygen -p
pressione Enter para localização padrão.
Digite senha antiga
Digite nova senha - EM BRANCO
Confirmar nova senha - EM BRANCO
BOOM a dor de entrar senha para git push tinha desaparecido.
Obrigado!