Utilizzo della stessa chiave privata SSH su più macchine


23

Ho un repository Github a cui voglio accedere da due diverse macchine Linux.

Per la prima macchina, ho seguito le istruzioni di Github per la generazione di chiavi SSH e ho aggiunto la chiave pubblica risultante a Github. Questo client funziona bene.

Per il secondo client, ho copiato il /home/{user}/.ssh/id_rsafile dal primo client. Pensavo che questo potesse essere tutto ciò che dovevo fare, ma quando provo a connettermi ottengo "Autorizzazione negata (chiave pubblica)".

Cosa mi sto perdendo?

Risposte:


32

La stessa chiave SSH dovrebbe essere in grado di essere utilizzata da più client. Ho chiavi SSH diverse per reti diverse e sono effettivamente archiviate su un'unità USB crittografata che utilizzo senza problemi da diversi computer.

SSH è molto esigente riguardo alle autorizzazioni per i file, quindi vorrei prima controllare tutte le autorizzazioni /home/{user}fino al id_rsafile stesso.

SSH non si preoccupa davvero delle autorizzazioni di scrittura di gruppo o del mondo, quindi assicurati di avere la chmod go-wtua home directory e la ~/.sshdirectory per cominciare. Mi assicurerei anche che siano di proprietà del tuo utente chown ${USER}:${USER}.

Per la stessa chiave SSH chmod 600li ho ...

Se vuoi, ho ulteriori informazioni su come gestisco le mie chiavi SSH nella mia risposta a un'altra domanda SSH.


3
Erano i permessi - Non ho un rappresentante per l'upgrade ma grazie
mille

6

Se ricevi l'autorizzazione negata dalla fine di Github, è possibile che non stia recuperando il file della chiave SSH copiato, ma piuttosto l'impostazione predefinita del sistema. Un modo semplice per aggirare questo è quello di ~/.ssh/configmettere alla prova un file e inserire quanto segue:

Host github.com
  Hostname      github.com
  User          git
  IdentityFile  ~/.ssh/yourkeyfile

Questo costringerà il tuo client SSH a usare quella chiave solo per github.com.

Spero che sia di aiuto.


2
Non ho un rappresentante per il voto, ma grazie
Yarin,

1

So che questo è vecchio, ma ho pensato di sottolineare che è necessario copiare anche la chiave pubblica sul secondo client

(o ricalcolo con ssh-keygen -y -f ~ / .ssh / id_rsa_ ..> ~ / .ssh / id_rsa ... pub)

Da [1]:

  1. Metodo di autenticazione con chiave pubblica: "publickey"

    L'unica autenticazione RICHIESTA "nome metodo" è l'
    autenticazione "chiave pubblica" . Tutte le implementazioni DEVONO supportare questo metodo;
    tuttavia, non tutti gli utenti devono disporre di chiavi pubbliche e la maggior parte delle
    politiche locali non richiederà probabilmente l'autenticazione con chiave pubblica per tutti gli
    utenti nel prossimo futuro.

    Con questo metodo, il possesso di una chiave privata funge da
    autenticazione. Questo metodo funziona inviando una firma creata
    con una chiave privata dell'utente. Il server DEVE verificare che la chiave
    sia un autenticatore valido per l'utente e DEVE verificare che la
    firma sia valida. Se entrambi trattengono, la richiesta di autenticazione DEVE essere
    accettata; in caso contrario, DEVE essere respinto. Si noti che il server può
    richiedere autenticazioni aggiuntive dopo un'autenticazione corretta.

Il client ssh avvia l'autenticazione inviando la chiave pubblica (la firma indicata in grassetto sopra) al server. Il server, se la chiave pubblica è una chiave autorizzata, invia un ID di sessione casuale al tuo client. Il client quindi codifica l'ID sessione con la chiave privata e lo restituisce al server. Il server decodifica l'ID sessione utilizzando la chiave pubblica e, se corrisponde all'ID sessione originale, autentica il client.

[1] [ http://www.openssh.org/txt/rfc4252.txt[[1]


0

Probabilmente è perché non hai copiato l'autorizzazione del file sul secondo client.
Ma una chiave privata è privata , il modo giusto è creare una nuova chiave privata sul secondo client e quindi aggiungere la sua chiave pubblica a Github


Avevo intenzione di fare 1 coppia di chiavi per utente tra i vari client di ogni utente. Ma una coppia di chiavi per ogni cliente di ogni utente mi sembra proprio come se sfuggisse di mano ...?
Yarin,

Se si utilizza la stessa chiave privata per ciascun utente su ogni macchina, sembra OK. Controlla l'autorizzazione se copi usando scp con -p flag dovrebbe essere ok
raggio
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.