La chiave SSH protetta dalla mia password scade o scadono dopo un po '

11

Ho una chiave SSH privata che uso per l'autenticazione che è memorizzata in ~ / .ssh / id_rsa . Quando eseguo l'ssh su un server, viene richiesta la password per sbloccare la chiave:

Mi piace questo. Mi piace anche che posso ssh ancora e ancora e non mi richiede la mia password.

Quello che non mi piace è che non sono obbligato a inserire la mia password della chiave giorni o addirittura settimane più tardi. Posso bloccare il mio schermo o metterlo a dormire e non devo ancora inserire la mia password della chiave. L'unica volta che sembra scadere la password è quando mi disconnetto (cosa che faccio raramente).

Come faccio a far scadere la password della chiave dopo un po ', costringendomi a inserire nuovamente la mia password per l'autenticazione? Rendendolo in modo che forse dopo 1 ora, la chiave venga automaticamente dimenticata.

    
posta Michael Kropat 22.01.2014 - 03:49
fonte

4 risposte

4

Invece di modificare ssh-agent (che ora richiede quantità ridotte di hacking), consiglio vivamente di modificare semplicemente le impostazioni sul portachiavi predefinito (login). Uso il molto utile 'lock on sleep' e 'lock dopo 4 ore' perché non voglio i prompt a meno che non sia effettivamente afk.

Apri Accesso Portachiavi e fai clic con il pulsante destro del mouse sul portachiavi di accesso per modificare le impostazioni:

O se preferisci una linea di comando:

security set-keychain-settings -lu -t 14400

Ciò comporterà almeno un ulteriore prompt per sbloccare il portachiavi stesso (che richiede la tua password di accesso) e il prompt per qualsiasi chiave tu stia cercando di usare ... ma batte IMO di disabilitazione della System Integrity Protection.

    
risposta data 19.11.2015 - 12:30
fonte
9

Nota : nelle versioni più recenti di OS X devi disattiva la protezione dell'integrità del sistema affinché questa risposta funzioni. (Grazie a @Dave Gregory e @Jaap per averlo indicato.)

Apri /System/Library/LaunchAgents/com.openssh.ssh-agent.plist (nelle versioni precedenti: org.openbsd.ssh-agent.plist ) in un editor di testo. Sostituire:

<key>ProgramArguments</key>
<array>
    <string>/usr/bin/ssh-agent</string>
    <string>-l</string>
</array>

con:

<key>ProgramArguments</key>
<array>
    <string>/usr/bin/ssh-agent</string>
    <string>-l</string>
    <string>-t</string>
    <string>30m</string>
</array>

Questo farà scadere la chiave dopo 30 minuti.

Reboot. Aspetta, riavvia?!? Questo non è Windows! Sì, riavvia.

Bene, puoi provare a decifrare le istruzioni per cambiare l'impostazione al volo , ma buona fortuna.

    
risposta data 25.01.2014 - 06:53
fonte
7

Devi impostare la durata della chiave. Di solito è impostato per sempre.

Quando esegui ssh-add , vuoi utilizzare l'opzione -t . Se si desidera una durata della chiave di un'ora, è ssh-add -t 1h . I formati temporali possono essere visualizzati nella pagina man di sshd_config , ma inseriscono semplicemente un numero seguito da s, m, h, d o w per secondi, minuti, ore, giorni o settimane.

ssh-add può essere inserito nel tuo file .bashrc e ti chiederà solo di convalidare la chiave una volta. Anche quando il tasto "scade" non viene rimosso, richiede solo la passphrase di nuovo quando si tenta di usarlo.

L'altra opzione sarebbe quella di modificare le opzioni di lancio per ssh-agent che sono memorizzate in /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist e aggiungere lì -t . (Io uso LaunchControl per cambiarle ma puoi farlo a mano se stai attento.)

    
risposta data 22.01.2014 - 04:35
fonte
1

Un'altra soluzione è:

ssh-add -t <time> <ssh-private-key>  # Set maximum lifetime to your SSH priv key.
killall ssh-agent                    # Kill all ssh-agent processes.
ssh-add -D                           # Delete all identities recorded by the agent.

Con questa soluzione, non devi scegliere un timeout per tutto il tuo portachiavi - abbastanza fastidioso quando vuoi impostare un timeout di alcuni secondi per la registrazione della password della tua chiave privata - e non devi disabilitare il tuo SIP per modificare /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist.

    
risposta data 22.04.2017 - 11:55
fonte

Leggi altre domande sui tag