Como posso forçar o SSH a fornecer uma chave RSA em vez de ECDSA?

13

Ao acessar pela primeira vez um servidor, como posso forçar o SSH a me fornecer a chave RSA e armazená-lo automaticamente se o usuário aprovar?

Atualmente ele está me oferecendo a chave ECDSA. Como eu já conheço a chave RSA, prefiro ver a chave RSA apresentada neste momento.

Eu tentei:

ssh -o RSAAuthentication=yes user@server

Infelizmente, isso me fornece uma chave ECDSA e a mensagem Are you sure you want to continue connecting (yes/no)? .

    
por H2ONaCl 07.05.2012 / 14:19

6 respostas

3

Não use o RSA, já que o ECDSA é o novo padrão.

No servidor, faça o seguinte: %código% e registre esse número.

No cliente, você pode enviar o SSH para o host e, se e quando vir o mesmo número, responder à solicitação ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub afirmativamente. Então a chave ECDSA será gravada no cliente para uso futuro.

    
por H2ONaCl 07.05.2012 / 18:37
14

Removendo os algoritmos do ECDSA da variável de configuração HostKeyAlgorithms .

ssh -o [email protected],[email protected],[email protected],[email protected],ssh-rsa,ssh-dss user@server

Eu simplesmente removi todos os algoritmos do ECDSA da lista padrão .

Você pode, é claro, colocar isso em seu .ssh/config para essa máquina:

Host: server
    HostKeyAlgorithms [email protected],[email protected],[email protected],[email protected],ssh-rsa,ssh-dss
    
O
por tumbleweed 14.11.2012 / 12:01
3

Sim, o OK muda para o ECDSA em breve, mas enquanto isso, tente isto:

ssh -o HostKeyAlgorithms=ssh-rsa -o FingerprintHash=md5 [email protected]
    
por bonkydog 18.12.2015 / 04:00
1

Acabei de adicionar esta linha

HostKeyAlgorithms ssh-rsa

para

/etc/ssh/sshd_conf

e está funcionando bem nesta versão.

OpenSSH_7.7p2 ubuntu-4ubuntu2.2
    
por Jewel Ahmmed 14.08.2017 / 19:25
0

Apenas para melhorar a resposta do tumbleweed que tem um link morto para encontrar a lista antiga de algoritmos.

Primeiro, decida sobre uma lista de algoritmos. Para encontrar a lista antiga, use ssh -vv :

ssh -vv somehost

E procure as duas linhas como "algoritmos de chave de host: ...", onde a primeira parece ser a oferta do servidor e a segunda é a do cliente. Ou para escolher essas 2 linhas automaticamente, tente isso (e para sair pressione ctrl + d):

ssh -vv somehost 2>&1 | grep "host key algorithms:"

Agora, filtre-o ... você deve remover todos os dss / dsa, já que eles são muito obsoletos, e você também queria remover o ecdsa (assim como eu), por exemplo, se você tivesse:

[email protected],[email protected],[email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

Você deve acabar com:

[email protected],[email protected],ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

Agora edite sua configuração. Para sua própria configuração:

vim ~/.ssh/config

Para a configuração do sistema:

sudo vim /etc/ssh/ssh_config

Adicione uma nova linha, globalmente:

HostKeyAlgorithms [email protected],[email protected],ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

ou para um host específico (não ideal para configuração em todo o servidor):

Host somehost
    HostKeyAlgorithms [email protected],[email protected],ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

Em vez da lista que eu inseri, cole a lista que você derivou da ssh -vv output, não incluindo a parte "host key algorithms:".

    
por Peter 02.08.2017 / 12:18
-5

Ou, se você insistir em ter a abordagem da chave RSA, você pode digitar ssh-keygen -t rsa no servidor para o qual você pretende usar o SSH.

Isso deve gerar chaves públicas e privadas RSA em '~ / .ssh / id_rsa'. Agora, tudo o que você precisa fazer é copiar a chave pública sob $HOME/.ssh/authorized_keys de todas as máquinas das quais pretende ssh para a máquina na qual você gerou suas chaves RSA.

E depois sente-se e relaxe!

    
por Somujit 14.08.2012 / 19:09

Tags