Atualmente, tenho uma chave SSH antiga carregada em um servidor. O problema é que perdi meu ~/.ssh
diretório (com o original id_rsa
e os id_rsa.pub
arquivos).
Consequentemente, desejo remover a chave SSH antiga diretamente no servidor e fazer upload de uma nova.
Eu tentei o seguinte comando sem sucesso:
$> ssh-add -D
Existe uma maneira de remover completamente uma chave SSH?
ssh-add -d
?Respostas:
Observe que há pelo menos dois relatórios de erros para
ssh-add -d/-D
não remover chaves:ssh-add -D
não remove a chave SSH dagnome-keyring-daemon
memória "ssh-add -D
excluir todas as identidades não funciona. Além disso, por que todas as identidades são adicionadas automaticamente? "O problema exato é:
Mais precisamente, sobre o problema:
Esse bug ainda está confirmado no Ubuntu 14.04.4, há dois dias (21 de agosto de 2014)
Uma possível solução alternativa:
Outra solução alternativa:
Esses comentários realmente sugerem:
Ryan Lue acrescenta outro caso interessante nos comentários :
Esse é o caso quando o
keygrip
foi adicionado como aqui .fonte
ssh-agent
essh-add
a? O pôster original dizia que ele queriaremove the old SSH key directly on the server and upload a new one
. Parece que ele deseja editar~/.ssh/authorized_keys
no host remoto.git clone
estava usando a primeira chave da cadeia, em vez da versão no arquivo de configuração na caixa Ubuntu. A chave ruim estava sendo sugada automaticamente e encaminhada para a caixa Debian.id_rsa
eid_rsa.pub
completamente, e a chave ainda estava aparecendo. Acontece que o gpg-agent os estava armazenando em cache em um~/.gnupg/sshcontrol
arquivo; Eu tive que excluí-los manualmente a partir daí.Se você está tentando executar uma operação relacionada ao ssh e obtém o seguinte erro:
Você pode remover a chave ssh ausente do seu agente ssh com o seguinte:
fonte
A menos que eu esteja entendendo errado, você perdeu o
.ssh
diretório que contém sua chave privada em sua máquina local e, portanto, deseja remover a chave pública que estava em um servidor e que permitia o login baseado em chave. Nesse caso, ele será armazenado no.ssh/authorized_keys
arquivo em seu diretório pessoal no servidor. Você pode simplesmente editar este arquivo com um editor de texto e excluir a linha relevante se puder identificá-lo (ainda mais fácil se for a única entrada!). Espero que essa chave não tenha sido seu único método de acesso ao servidor e você tenha alguma outra maneira de efetuar login e editar o arquivo. Você pode adicionar manualmente uma nova chave pública aoauthorised_keys
arquivo ou usarssh-copy-id
. De qualquer forma, você precisará da autenticação de senha configurada para sua conta no servidor ou de alguma outra identidade ou método de acesso para acessar oauthorized_keys
arquivo no servidor.ssh-add
adiciona identidades ao seu agente ssh, que lida com o gerenciamento local de suas identidades e "a conexão ao agente é encaminhada através de logins remotos SSH, e o usuário pode, assim, usar os privilégios dados pelas identidades em qualquer lugar da rede de maneira segura". (página de manual), então não acho que seja o que você deseja neste caso. Não tem como colocar sua chave pública em um servidor sem que você tenha acesso ao servidor por meio de um login ssh, até onde eu sei.fonte
Abri o aplicativo "Senhas e Chaves" no Unity e removi chaves indesejadas das Chaves Seguras -> Chaves OpenSSH E elas foram automaticamente removidas do ssh-agent -l também.
fonte
~/.ssh
Posso confirmar que esse bug ainda está presente no Ubuntu 19.04. A solução alternativa sugerida pelo @VonC funcionou perfeitamente, resumindo a minha versão:
O que eu fiz seguinte foi para tentar
ssh-add -D
novamente, e após a reinicializaçãossh-add -l
me disse O agente não tem identidades. Confirmei que ainda tinha ossh-agent
daemon em execuçãops aux | grep agent
. Então eu adicionei a chave que eu mais uso no GitHub (ssh-add ~/.ssh/id_ecdsa
) e está tudo bem!Agora eu posso fazer as operações normais com meu repositório usado com mais frequência e, se ocasionalmente precisar de acesso ao outro repositório que usa a chave RSA, apenas dedico um terminal para ele
export GIT_SSH_COMMAND="ssh -i /home/me/.ssh/id_rsa.pub"
. Resolvido! O crédito é atribuído ao @VonC por apontar o bug e a solução.fonte
Marque a tecla .ssh ou não no seu sistema
Se não for
Passado no terminal
Remover chave .ssh existente
Crie um novo
Criar nova chave .ssh -> ssh-keygen -t rsa -b 4096 -C "[email protected]"
A chave pública foi salva em "/Users/administrator/.ssh/id_ed25519.pub".
fonte
A solução para mim (OpenSuse Leap 42.3, KDE) foi renomear a pasta
~/.gnupg
que aparentemente continha as chaves e perfis em cache. Após o logoff / logon do KDE, o ssh-add / agent está sendo executado novamente e a pasta é criada do zero, mas as chaves antigas desapareceram.Não tive sucesso com as outras abordagens.
fonte