As chaves SSH DSA não funcionam mais para autenticação sem senha

25

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 SSH em algum host, ele 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?

    
por D.W. 23.12.2015 / 02:17

2 respostas

39

Isso é um resultado da atualização para o OpenSSH 7.0. Como as notas de lançamento para o OpenSSH 7.0 dizem , "Suporte para chaves de host e de usuário ssh-dss é desabilitado por padrão em tempo de execução ".

A solução é adicionar a seguinte linha a ~/.ssh/config em cada máquina cliente (cada máquina em que você executa o cliente SSH):

PubkeyAcceptedKeyTypes=+ssh-dss

Se o servidor estiver usando o OpenSSH 7.0 ou mais recente, você também precisará adicionar esta linha a /etc/ssh/sshd_config em cada máquina servidor.

Como alternativa, você pode gerar uma chave SSH inteiramente nova e adicioná-la ao seu arquivo authorized_keys em cada servidor em que você deseja efetuar login. Eu recomendo que você use o RSA , para evitar problemas de compatibilidade. Eu não recomendo o ECDSA, já que aparentemente o gnome-keyring-daemon não seleciona automaticamente chaves SSH do tipo ECDSA.

Observação editorial: Por que o pessoal do OpenSSH desabilitou 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 web do OpenSSH afirma que o ssh-dss é fraco, mas, até onde eu sei, o ssh-1024-bit O dss não é mais fraco do que o RSA de 1024 bits e as chaves RSA de 1024 bits não estão desativadas.

    
por 23.12.2015 / 02:17
0

Meus dois centavos

Como editando o arquivo .ssh/config para permitir que isso pareça ser uma idéia não tão boa , sugiro

  1. Crie uma nova chave usando a ferramenta recente.

    Copie a nova chave pública (no clipe)

  2. Registre uma última vez usando a chave antiga:

    ssh -i .ssh/id_dsa.pub -o PubkeyAcceptedKeyTypes=+ssh-dss user@host
    

    Em seguida, atualize o arquivo @host authorized_keys , adicionando seu novo pubkey e faça logout

    cat >>.ssh/authorized_keys
    

    colar , então Ctrl + D

  3. Registre com uma nova chave usando a sintaxe padrão:

    ssh user@host
    
    1. Em seguida, atualize o arquivo @host authorized_keys , removendo seu pubkey antigo (eu uso sed -e 1d -i .ssh/authorized_keys quando meu pubkey antigo está on-line 1 deste arquivo).

    2. Sugiro que você atualize seu servidor ssh, se puder.

    3. logout
  4. Teste se a chave antiga não funciona mais.

    ssh -i .ssh/id_dsa.pub -o PubkeyAcceptedKeyTypes=+ssh-dss user@host
    ...
    Permission denied...
    

    Isso não tem que funcionar; -)

  5. Você pode até mesmo verificar novamente se tudo está correto:

    ssh user@host uptime
    
por 19.10.2018 / 17:25