Após a atualização para o Fedora 23, a autenticação sem senha (baseada em chave pública) não funciona mais no SSH: ao tentar fazer o SSH para algum host, solicita minha senha no host remoto. Não consigo usar minha chave privada SSH. Tudo funcionou bem com o Fedora 22.
Minha chave pública é uma chave DSA ( ~/.ssh/id_dsa.pub
). Estou usando o OpenSSH 7.1 ( openssh-7.1p1-5.fc23.x86_64
).
Como faço para que a autenticação sem senha funcione corretamente novamente?
ssh -Q
. Isso está perguntando como solucionar uma falha do SSH. Eu encontrei parte do material em superuser.com/q/962918/93541 e em outros lugares útil na identificação dessa solução, mas a resposta lá descreve como usarssh -Q
e não responde a essa pergunta (por exemplo, não explica como corrigir esse problema), então, na minha opinião, não é um dup. O do Unix e Linux é muito semelhante; Eu gostaria de ter visto isso antes. Mais uma vez obrigado pelos links!Respostas:
Isso é resultado da atualização para o OpenSSH 7.0. Como dizem as notas de versão do OpenSSH 7.0 , "O suporte para chaves de host e usuário ssh-dss está desativado por padrão no tempo de execução".
A solução é adicionar a seguinte linha
~/.ssh/config
em todas as máquinas clientes (todas as máquinas em que você executa o cliente SSH):Se o servidor estiver usando o OpenSSH 7.0 ou mais recente, você também precisará adicionar esta linha
/etc/ssh/sshd_config
em cada máquina servidor.Como alternativa, você pode gerar uma chave SSH totalmente nova e adicioná-la ao seu arquivo allowed_keys em todos os servidores nos quais deseja efetuar login. Eu recomendo que você use o RSA , para evitar problemas de compatibilidade. Eu não recomendo o ECDSA, pois aparentemente o gnome-keyring-daemon não pega automaticamente as chaves SSH do tipo ECDSA.
Comentário editorial: Por que o pessoal do OpenSSH desativou as chaves DSA? Eu não sei. Até onde eu sei, não há nada de errado com a segurança das chaves DSA (ssh-dss). A página da Web OpenSSH afirma que o ssh-dss é fraco, mas até onde eu sei, o ssh-dss de 1024 bits não é mais fraco que o RSA de 1024 bits e as chaves RSA de 1024 bits não estão desabilitadas.
fonte
Meus dois centavos
Como editar o
.ssh/config
arquivo para permitir que isso pareça uma idéia não tão boa , sugiroCrie uma nova chave, usando a ferramenta recente.
Em seguida, copie a nova chave pública (para o clipbord)
Registre uma última vez usando a chave antiga:
Em seguida, atualize
@host
oauthorized_keys
arquivo, adicionando seu novo pubkey e logoutpaste, então Ctrl+D
Faça logon com nova chave usando a sintaxe padrão:
Em seguida, atualize
@host
oauthorized_keys
arquivo removendo seu antigo pubkey (eu usosed -e 1d -i .ssh/authorized_keys
quando meu antigo pubkey está na linha1
desse arquivo).Sugiro atualizar seu servidor ssh, se puder.
Teste se a chave antiga não funciona mais.
Isso tem que não funcionar ;-)
Você pode até verificar novamente se está tudo bem:
fonte
~/.ssh/config
não é uma boa idéia.~/.ssh/config
si, mas com a ideia de permitir o DSA. Obrigado por explicar. Isso faz sentido. (Eu acho que eu já abordados em minha resposta e meus comentários por isso que acho que a recomendação de ser intrigante, mas não vou tentar discutir isso aqui.).config
permite que você executessh
por um longo período de tempo e até mesmo perca o uso do algoritmo fraco . Ao usar-o Pubkey...
na linha de comando, você não perdoará que há algo a ser atualizado .