copia le chiavi private ssh su un altro computer


52

Devo usare un altro computer per accedere al mio server SSH. Questo perché un vpn recentemente implementato nella mia università non funziona sul mio computer attuale e ho perso l'accesso al server.

Ssh tramite chiavi ssh crittografate. Posso copiare queste chiavi sul nuovo computer (su cui funziona la VPN). Ho provato a copiare i file id_rsae id_rsa.pubnella ~/.sshcartella ma non riconosce le chiavi e non viene richiesto di inserire una password per decrittografare le chiavi.

EDIT: non riesco ad accedere al server per generare una nuova coppia di chiavi per il nuovo computer e sono fuori dal paese, quindi non posso accedervi fisicamente.

Grazie.


" id_rsh" È un refuso?
ændrük,

1
Puoi saperne di più sul problema provando ssh -v -i ~/.ssh/id_rsa ssh-server.
ændrük,

ci ho provato. Sembra inviare le chiavi ma non chiede mai una password per decifrarle. Ricevo anche uno strano messaggio generico "Roaming non consentito dal server". Indovina che le chiavi private non sono pensate per essere copiate;). Sembra che dovrò fidarmi di qualcuno con accesso fisico per accedere manualmente al mio server e modificare le impostazioni di ssh. Grazie per l'aiuto.
benj,

Le chiavi private non devono mai essere copiate! QUESTO È UN RISCHIO DI SICUREZZA. Genera nuove chiavi per ogni nuovo dispositivo !!!!
Ether,

@Ether È vero? E se fosse necessario riformattare una macchina? Basta soffiare via la chiave e ricominciare da capo?
Nipponese

Risposte:


66

Controlla le autorizzazioni e la proprietà del tuo file di chiave privata. Dal manuale ,

Questi file contengono dati sensibili e dovrebbero essere leggibili dall'utente ma non accessibili da altri (lettura / scrittura / esecuzione). ssh ignorerà semplicemente un file di chiave privata se è accessibile da altri.

In genere i file chiave dovrebbero apparire così,

$ ls -l ~/.ssh/id_rsa*
-rw------- 1 benj benj 1766 Jun 22  2011 .ssh/id_rsa
-rw-r--r-- 1 benj benj  388 Jun 22  2011 .ssh/id_rsa.pub

che puoi applicare tramite:

$ chown benj:benj ~/.ssh/id_rsa*
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub

2
Grazie. È utile saperlo. Quando si copia un file su un altro computer, le autorizzazioni sembrano cambiare a quell'utente. Ho eseguito gli script chmod e chown nel caso. Purtroppo non ha aiutato il mio problema.
benj,

@John ツ questo potrebbe essere stato parte del problema per me, ma sembra che ci siano altri problemi. Alla fine ho trovato qualcuno che si connetteva fisicamente al server e impostava una nuova chiave. Ma lo accetterò perché probabilmente copre un problema chiave.
benj,

Ha funzionato per me, @benj.
Sinthia V

14

Prova a eseguire ssh-addprima di eseguire SSH nel server: ti verrà quindi richiesta la password e quindi le sshconnessioni successive possono utilizzare la tua chiave privata.

Il ssh-addcomando aggiunge le chiavi all'agente chiave.


1
Non penso che questo sia il problema, in quanto 1) il client SSH può farcela senza un key agent funzionale, 2) il server non risponderebbe con il messaggio "roaming non consentito" e 3) il client ssh avrebbe il suo messaggio di errore quando si parla in qualche modo con l'agente chiave. Ho reso i miei pensieri al riguardo una risposta .
gertvdijk,

Questo ha risolto il problema per me. Vedi anche la documentazione di Github per questo .
Ionică Bizău,

8

Le chiavi private crittografate mantengono la loro chiave pubblica corrispondente non crittografata . Ecco come il client SSH può connettersi al server remoto senza chiederti la password (offre solo la parte pubblica a quel punto). Ogni volta che il server accetta la chiave pubblica, il client sul tuo PC vuole decrittografare la chiave privata e ti chiederà la passphrase.

Ora, ogni volta che il server accetta la connessione solo da un indirizzo IP specifico, questo viene rifiutato già nel primo passaggio e spiega il messaggio ricevuto dal server "Roaming non consentito dal server".

Quindi, la mia ipotesi migliore è che il tuo server sia limitato in qualche modo per consentire solo indirizzi IP specifici per questa chiave. Puoi farlo in diversi modi, ma questo è comune in ~/.ssh/authorized_keys:

from="192.168.1.2" ssh-rsa AAAAB3NzaC[...]

Per provare che puoi leggere la chiave pubblica da una chiave privata crittografata senza password, esegui:

ssh-keygen -y -f /path/to/private/key

1
Questa è una buona procedura utile per ottenere una risposta in caso di problemi con la connessione SSH. Grazie.
Sinthia V
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.