Impossibile sbloccare la chiave SSH protetta da password in OS X Mavericks

18

Ho appena effettuato l'aggiornamento a OSX 10.9 e quando provo a stabilire una connessione SSH con autenticazione a chiave pubblica, viene visualizzata una richiesta che richiede la password della mia chiave SSH.

Inizialmente pensavo che l'aggiornamento causasse al portachiavi la perdita di alcune password, quindi sono rientrato nel mio. Apparentemente, questa non era la causa, perché il prompt continuava a riapparire.

Per prima cosa, però, potrei usare la password sbagliata, ma con il seguente comando:

$ ssh-keygen -vvv -y -f id_rsa >| id_rsa.pub
debug3: Incorrect RSA1 identifier
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase:
debug3: Incorrect RSA1 identifier
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
load failed

... non funziona! Se provo a usare openssl:

$ openssl rsa -in id_rsa -text
Enter pass phrase for id_rsa:
Private-Key: (2048 bit)
modulus:
    00:...

la mia chiave privata è decrittografata correttamente e tutte le informazioni sono stampate.

Che cosa è successo con l'aggiornamento a Mavericks? Come posso ripristinare la mia chiave privata in uno stato utilizzabile?

    
posta GaretJax 23.10.2013 - 01:26
fonte

7 risposte

22

Apparentemente, la chiave privata che stavo usando sulla mia macchina era vecchia. La mia chiave non conteneva le informazioni sulla crittografia aggiunte al file della chiave privata se ne creavo una nuova:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-...

Per risolvere il problema, ho decodificato la chiave con openssl:

$ cd ~/.ssh
$ cp id_rsa id_rsa.bck
$ openssl rsa -in id_rsa -out id_rsa

... e poi ricodificato:

$ openssl rsa -in id_rsa -aes256 -out id_rsa
$ chmod 0600 id_rsa

E nel caso, rigenerare anche la chiave pubblica:

$ ssh-keygen -y -f id_rsa > id_rsa.pub
    
risposta data 23.10.2013 - 01:40
fonte
3

Ho avuto lo stesso problema. L'ho risolto spostando .ssh / authorized_keys2 in .ssh / authorized_keys.

Il file / etc / sshd_config contiene esplicitamente queste righe:

\# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
\# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile  .ssh/authorized_keys

Questa è una modifica rispetto alla versione precedente di macosx?

    
risposta data 01.11.2013 - 11:35
fonte
2

Lo stesso problema qui, le mie chiavi mostrano lo stesso comportamento.

Ho rintracciato il problema in questo post del blog. Ho modificato i miei ssh-keys come descritto in questo artice per aumentare la sicurezza e ha funzionato con Mountain Lion. link

Suppongo che Apple abbia cambiato qualcosa con openssh e che la "nuova" versione non sia in grado di leggere il nuovo formato PKCS # 8.

My Mavericks OpenSSH Version: OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

Non ho altri Mac, quindi non posso confrontarlo con la versione Mountain Lion.

    
risposta data 23.10.2013 - 12:35
fonte
2

Usando brew openssl e openssh corregge il problema di PCKS # 8 su Mavericks.

brew update
brew install openssl
brew link openssl --force
brew install openssh

# confirm correct bins are being used
# both should be located in /usr/local/bin
which openssl
which openssh

# add key back to keychain
ssh-add ~/.ssh/id_rsa

Non sono sicuro che se il collegamento di forza openssl interrompa qualcosa su Mavricks. Finora, non ho notato alcun problema.

    
risposta data 08.11.2013 - 22:41
fonte
0

Sono riuscito a risolvere questo problema semplicemente facendo quanto segue:

cd ~/.ssh
mv known_hosts known_hosts.old

Ora vai e connettiti. Quando chiede la domanda standard per aggiungere il tipo di impronta digitale sì.

    
risposta data 25.10.2013 - 21:11
fonte
0

È successo per ottenere questo problema. Cercando di specificare il codice, sono riuscito a farlo funzionare bene.

Su Linux, quando provi a generare coppie di chiavi, usa questo:

ssh-keygen -t rsa -Z aes256

La chiave pubblica ora con codice aes256 può essere riconosciuta correttamente da ssh su OSX (qui, il mio è 10.12.1).

    
risposta data 12.11.2016 - 01:53
fonte
0

È possibile convertire una chiave PuTTY in un tasto OS X OpenSSL:

puttygen putty.ppk -O private-openssh -o osx.key

Digita la passphrase e il gioco è fatto.

    
risposta data 06.12.2016 - 19:49
fonte

Leggi altre domande sui tag