OSX ssh-agent: nessuna password incollata e problemi con PKCS # 8?


37

Uso ssh sul mio computer e ho impostato una passphrase lunga non adatta alle persone che viene salvata nel mio gestore delle password. Ciò che mi fa impazzire ogni volta è che non posso incollare nella finestra nella foto sotto. Conosco l' Remember password in my keychainopzione e la uso. A volte devo inserirne uno nuovo però. Perché non riesco a incollare in un campo password?

Stessa cosa per la finestra di dialogo che si apre quando si collegano i dischi crittografati.

finestra di ssh-agent

Alcuni aggiornamenti:

  1. Ho scoperto come posso aggirare la finestra di dialogo: basta usare ssh-add -K ~/.ssh/id_rsae quindi posso incollare la passphrase nel terminale.
  2. Come menzionato mattmcmanus, la mia chiave viene codificata usando pkcs8quale è stato rotto sull'agente ssh di Yosemite. Questo non è correlato al problema precedente, ma mi è capitato allo stesso tempo (leggi qui ).
  3. l'utilizzo ssh-add continua a non risolverlo per i dischi crittografati.

Dovresti accettare una delle buone risposte di seguito. Dovresti anche evitare di porre più domande in un singolo post.
Alain O'Dea,

1
@ AlainO'Dea Prima di tutto, sì, dovrei, questa è una vecchia domanda e me ne sono dimenticato. Per la seconda cosa però: al momento della domanda, non era chiaro che si sarebbe verificato il secondo problema (PKCS non funzionante), vedere la cronologia delle modifiche.
Joni,

Risposte:


22
  1. La finestra di dialogo per ssh-agent può essere aggirata aggiungendo la chiave nella console / terminale: ssh-add ~/.ssh/id_rsa. È quindi possibile incollare la password nel terminale. Inoltre, aggiungendo l' -Kopzione to ssh-addlo salverai sul portachiavi come da commento di Oliver Lacans.
  2. Come ha detto mattmcmanus, la id_rsacrittografia tramite PKCS sembra essere stata interrotta su OSX Mavericks ssh-agent. La soluzione rapida è quella di decrittografare il file di chiavi e crittografarlo nuovamente con la procedura standard ssh (Metodo di derivazione della chiave: MD5 ...):

mv id_rsa id_rsa.pkcs
openssl rsa -in id_rsa.pkcs -out id_rsa
# enter passphrase to decrypt
chmod 0600 id_rsa
ssh-keygen -f id_rsa -p
# enter passphrase to encrypt again

3
Mentre la risposta di Joni è eccellente, consiglierei ssh-add -K ~/.ssh/id_rsaquale "Memorizza le passphrase nel tuo portachiavi" secondo ssh-add --help. Ti impedirà di dover eseguire nuovamente ssh-addogni volta che apri una nuova scheda shell o quando riavvii il computer.
Olivier Lacan,

2

È una chiave PKCS # 8 e sei sui maverick? Se è così, sembra essere completamente rotto. Non sono sicuro che ci sia ancora una soluzione.


1
perché dovrebbe essere? Il problema finora è solo che il campo della password nella finestra di dialogo non accetta l'incollamento. Questo esisteva già su 10.8, ma a causa dell'aggiornamento a 10.9 devo inserire nuovamente la passphrase.
Joni,

OK, sembra che tu abbia ragione ... guarda la mia risposta.
Joni,

2

Su Mac OS X El Capitan il comando ssh-add può farlo con un'opzione -K :

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:

È possibile incollare la password in questo prompt con ⌘-V .

Una sessione per questo assomiglia a questo:

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:
Passphrase stored in keychain: /Users/your.username/.ssh/id_rsa
Identity added: /Users/your.username/.ssh/id_rsa (/Users/your.username/.ssh/id_rsa)

Estratto pertinente di SSH-ADD (1) allevato con man ssh-add :

-K Quando si aggiungono identità, ogni passphrase verrà anche memorizzata nel portachiavi. Quando rimuovi le identità con -d, ogni passphrase verrà rimossa dal tuo portachiavi.

NOTA INFOSEC : la password non verrà mostrata nella shell, ma sarà esposta a tutte le applicazioni in esecuzione tramite gli Appunti. Una soluzione di autotipo sarebbe più sicura.


1

Puoi eseguire uno script come questo in AppleScript Editor:

tell application "System Events" to tell process "SecurityAgent"
    set value of text field 2 of scroll area 1 of group 1 of window 1 to "pa55word"
    click button 2 of group 2 of window 1
end tell

1
grazie, questo aiuterà per le finestre di dialogo "dischi crittografati". Ma perché apple ha disabilitato questo campo per incollare ???
joni,

Pratico, ma sì, non pensare che questo risolva il problema PKCS # 8, dove anche se inserisci la password corretta, dice una passphrase errata.
Bob Aman,

Non ha senso. Ora la tua password top secret è aperta a tutti. Questo è il motivo per cui il TS utilizza un gestore di password per rendere le sue password centralizzate e altamente protette.
whaefelinger,

1
Non funziona su El Capitan. Per prima cosa chiede a Script Editor di ottenere il controllo assistivo System Events got an error: Script Editor is not allowed assistive access. Una volta consentito in Preferenze di Sistema | Sicurezza e privacy che ottengoSystem Events got an error: Can’t get window 1 of process "SecurityAgent". Invalid index.
Alain O'Dea,

1

Ho avuto lo stesso problema. Dopo aver trovato questa domanda, ho continuato a cercare e ho trovato una risposta altrove. Questa è una domanda più vecchia, ma non ha risposte accettate ed è ancora in cima agli elenchi di ricerca. (non sono sicuro dell'etichetta di scambio di stack su questo).

RE non è in grado di copiare / incollare: è apparentemente di progettazione. L'intenzione è impedire agli Appunti di accedere completamente al campo per impedire a un programma dannoso di cancellare caselle di password. Penserei che incollare (e non tagliare) dovrebbe essere permesso, ma forse c'è qualche motivo tecnico.

Per le cose di ssh-agent, a partire da (almeno) Yosemite, l' -Kopzione ssh-add -K ~/.ssh/blahfa quello che vuoi - digita la password una volta, è memorizzata nel tuo portachiavi e ssh-agent si sbloccherà in modo trasparente per te. Per cercare di essere più sicuro, metto le mie passphrase ssh in un portachiavi separato che si blocca periodicamente.


Hai qualche possibilità di condividere un link alla risposta che hai trovato?
John Carney,

Mi dispiace per quello! Per la roba di ssh-agent, mi sono imbattuto in developer.apple.com/library/mac/documentation/Darwin/Reference/…
PerilousApricot

0

L'uso di brew openssl e openssh risolve il problema.

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 il collegamento forzato openssl rompa qualcosa su Mavricks. Finora non ho notato alcun problema.


1
Non esiste una (più a) brewformula per openssh.
Adam Liter,

C'è ancora brew tap homebrew/dupescomunque. Detto questo, questi passaggi non sembravano risolvere questo problema per me.
Bob Aman,

@ simple10 Questa risposta fornisce poco o nessun valore. Dovresti almeno fornire la versione di openssl / openssh che risolve il problema. Inoltre, spiega perché lo farebbe.
whaefelinger,
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.