Risposta breve: Sì, scegli "Mostra elementi invisibili" in Accesso portachiavi
(Originariamente, questa risposta erroneamente diceva: "Al momento non sembra esserci un modo per recuperare la passphrase." Il resto della risposta confronta il modo in cui i passphrase delle chiavi SSH sono memorizzati nei portachiavi nelle versioni più vecchie e più recenti di macOS è tenuto qui per riferimento.)
In Mac OS X 10.11 e precedenti, le passphrase delle chiavi SSH erano memorizzate da ssh
e ssh-add
nel portachiavi di login dell'utente, usando le seguenti proprietà (pseudocodice adattato da Apple OpenSSH-195.40.1 ):
{
kSecClass: kSecClassGenericPassword,
kSecAttrAccount: pathToPrivateKey,
kSecAttrLabel: "SSH: " + pathToPrivateKey,
kSecAttrService: "SSH"
}
A partire da macOS 10.12, la passphrase viene interrogata e archiviata con proprietà che la costringono ad essere memorizzata nel portachiavi "sincronizzabile" (gli "Elementi locali" supportati dal database, chiamato anche "Portachiavi iCloud" se abilitato), con accesso controllato da un " Gruppo di accesso "; ssh
ignorerà i vecchi elementi nel tuo portachiavi di accesso.
Da Apple OpenSSH 209 :
{
kSecClass: kSecClassGenericPassword,
kSecAttrAccount: pathToPrivateKey,
kSecAttrLabel: "SSH: " + pathToPrivateKey,
kSecAttrService: "OpenSSH",
kSecAttrNoLegacy: TRUE,
kSecAttrAccessGroup: "com.apple.ssh.passphrases"
}
Apple non ha abilitato la riga di comando security
strumento per accedere ai contenuti del portachiavi sincronizzabile, e per impostazione predefinita (a meno che non selezioni "Mostra elementi invisibili") Accesso Portachiavi non mostra nemmeno il suo contenuto completo, anche se l'elemento portachiavi ssh non è marcato esplicitamente come invisibile .
Se si voleva provare a ottenere la password senza usare Keychain Access, non penso sarebbe semplice o forse nemmeno possibile scrivere un programma che recupera la passphrase dal portachiavi, poiché l'accesso ad esso è controllato da Apple firma del codice.
Puoi vedere alcuni dettagli limitati sui passphrase memorizzati nel tuo portachiavi sincronizzabile usando il comando sqlite3
, ma la maggior parte dei campi interessanti come le etichette degli articoli sono crittografati.
$ sqlite3 Library/Keychains/*/keychain-2.db "select rowid, datetime(mdat+978307200, 'unixepoch', 'localtime'), agrp from genp where agrp = 'com.apple.ssh.passphrases' order by mdat asc"
45|2017-01-07 13:53:13|com.apple.ssh.passphrases
46|2017-01-08 23:59:25|com.apple.ssh.passphrases