Come posso forzare SSH a fornire una chiave RSA invece di ECDSA?

14

Al primo accesso a un server, come posso forzare SSH a fornirmi la chiave RSA e memorizzarla automaticamente se l'utente approva?

Attualmente mi offre la chiave ECDSA. Poiché conosco già la chiave RSA, preferirei vedere la chiave RSA presentata a questo punto.

Ho provato:

ssh -o RSAAuthentication=yes user@server

Purtroppo questo mi dà una chiave ECDSA e il messaggio Are you sure you want to continue connecting (yes/no)? .

    
posta H2ONaCl 07.05.2012 - 14:19
fonte

6 risposte

5

Non utilizzare RSA poiché ECDSA è il nuovo valore predefinito.

Sul server fai questo: %codice% e registra quel numero.

Sul client è possibile SSH per l'host e se e quando si visualizza lo stesso numero, è possibile rispondere affermativamente al prompt ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub . Quindi la chiave ECDSA verrà registrata sul client per uso futuro.

    
risposta data H2ONaCl 07.05.2012 - 18:37
fonte
14

Rimuovendo gli algoritmi ECDSA dalla variabile di configurazione HostKeyAlgorithms .

ssh -o HostKeyAlgorithms=ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss user@server

Ho semplicemente rimosso tutti gli algoritmi ECDSA da l'elenco predefinito .

Ovviamente puoi metterlo nella tua .ssh/config per quella macchina:

Host: server
    HostKeyAlgorithms ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss
    
risposta data tumbleweed 14.11.2012 - 12:01
fonte
3

Sì, OK passa presto a ECDSA, ma nel frattempo prova questo:

ssh -o HostKeyAlgorithms=ssh-rsa -o FingerprintHash=md5 user@example.com
    
risposta data bonkydog 18.12.2015 - 04:00
fonte
1

Solo per migliorare la risposta di tumbleweed che contiene un link morto per trovare la vecchia lista di algoritmi.

Prima decidi su un elenco di algoritmi. Per trovare il vecchio elenco, usa ssh -vv :

ssh -vv somehost

E cerca le 2 linee come "algoritmi chiave host: ..." dove la prima sembra essere l'offerta del server, e la seconda è quella del cliente. O per selezionare automaticamente quelle 2 linee, prova questo (e per uscire premi ctrl + d):

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

Ora filtralo ... dovresti rimuovere tutti i file dss / dsa poiché sono obsoleti, e volevi anche rimuovere ecdsa (come faccio io), quindi ad esempio se avessi:

ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

Dovresti finire con:

ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

Adesso modifica la tua configurazione. Per la tua configurazione:

vim ~/.ssh/config

Per la configurazione del sistema:

sudo vim /etc/ssh/ssh_config

Aggiungi una nuova linea, globalmente:

HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

o per un host specifico (non ideale per la configurazione del server):

Host somehost
    HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

Invece dell'elenco che ho inserito, incolla l'elenco derivato dall'output ssh -vv , non inclusivo degli "algoritmi chiave host:" parte.

    
risposta data Peter 02.08.2017 - 12:18
fonte
1

Ho appena aggiunto questa riga

HostKeyAlgorithms ssh-rsa

a

/etc/ssh/sshd_conf

e sta funzionando bene in questa versione.

OpenSSH_7.7p2 ubuntu-4ubuntu2.2
    
risposta data Jewel Ahmmed 14.08.2017 - 19:25
fonte
-5

Oppure, se insisti per avere l'approccio con la chiave RSA, puoi digitare ssh-keygen -t rsa sul server che intendi utilizzare per SSH.

Questo dovrebbe generare chiavi pubbliche e private RSA sotto '~ / .ssh / id_rsa'. Ora tutto ciò che devi fare è copiare la chiave pubblica sotto $HOME/.ssh/authorized_keys di tutte quelle macchine da cui hai intenzione di ssh alla macchina su cui hai generato le tue chiavi RSA.

E poi siediti e rilassati!

    
risposta data Somujit 14.08.2012 - 19:09
fonte

Leggi altre domande sui tag