Usar o Fedora é algo bem divertido ( principalmente quando já tem um tempo que você não atualiza o sistema, por falta de tempo/trabalho ). Principalmente porque vira e mexe somos premiados com alguns bugs bem interessantes. Desde ter que fazer alguma configuração para rodar um simples Docker até um erro que recebi agora a pouco quando fui usar o meu notebook agora nas férias.
Como estou preparando minha estação para que eu possa retomar alguns dos meus projetos pessoais fui clonar alguns repositórios que eu tinha no disco que estavam muito desatualizados. E, com isto comecei a receber um erro bem chato. E bota chato nisto …
git@gitlab.com: Permission denied (publickey,keyboard-interactive)
Ao ler o erro a primeira coisa que eu pensei foi. Caramba, será que a anta aqui conseguiu ferrar a chave do ssh ?
Aí fui cadastrar novamente a chave. Nada … criei uma nova chave e criei uma nova regra no .ssh/config
. Nada …
Aí, apelei para o famoso debug do ssh. Debug verboso do caramba aliás …
ssh -vvvv git@gitlab.com
E nele eu bati com o seguinte erro: sign_and_send_pubkey: no mutual signature supported
.
Este erro chato ocorre quando computadores com clientes ssh atualizados vão conectar em servidor com a encriptação ssh-dss. Este protocolo foi depreciado e, com isto os clientes de ssh atuais não o suportam. A solução é forçar a presença deste protocolo para qualquer host ou para um host específico no seu arquivo .ssh/config
.
No meu caso como eu precisava somente para o host gitlab.com
fiz assim. Caso queira usar para todos os hosts, é só colocar no lugar de gitlab.com o * .
Host gitlab.com
HostkeyAlgorithms +ssh-dss
PubkeyAcceptedKeyTypes +ssh-dss
Há outros modos de configurar mas aí é só usar a criatividade.