GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire il portachiavi in ​​un modo in cui solo la prima shell richiede le chiavi all'avvio?

Apro più schede della shell quando avvio KDE e ho appena aggiunto keychain al mio ~/.shellrc il problema è che tutte le schede richiedono le password delle chiavi quando accedo. È abbastanza fastidioso farlo. C'è una buona soluzione per questo in modo che tutte le schede si avviino semplicemente e una volta che ho effettuato l'accesso a una scheda, tutte hanno le chiavi caricate?

Risposta accettata:

Ecco due metodi:

Puoi assicurarti che il portachiavi si apra solo su una scheda come questa:

if mkdir /tmp/keychain.lock; then
  eval `keychain --eval --agents ssh id_dsa`
  rm -r /tmp/keychain.lock
fi

Ma potrebbe non essere nella prima scheda in cui atterri:potresti doverlo cercare, il che potrebbe essere altrettanto fastidioso. Funziona perché mkdir è un'operazione atomica:solo uno script avrà esito positivo e quello visualizzerà il prompt.

Un altro modo visualizzerà il prompt su tutte le schede, ma le chiuderà una volta che rispondi a una di esse. Puoi eseguire il polling di un file o utilizzare inotify-tools come questo:

file=/tmp/keychain-wait
touch $file
inotifywait -e delete_self $file |\
while read file event; do 
 if [ "$event" = "DELETE_SELF" ]; then
   pkill keychain
 fi
done &

keychain
rm $file

Questo presenta il prompt, ma prima avvia un watcher per vedere se un file è stato eliminato. Dopo che il prompt è soddisfatto, il file viene eliminato e il watcher ucciderà tutti gli altri prompt in attesa. inotifywait proviene da inotify-tools; inotify è un'API Linux. Potrebbe esserci un'API simile su altri Unice, ma in caso contrario, hai solo bisogno di un ciclo che esegua il polling per vedere se il file è stato eliminato.


Linux
  1. Come eseguire uno script di shell all'avvio

  2. Fish Shell:come posso personalizzare i colori per la funzione di completamento automatico?

  3. Come eseguire il comando Vim dalla shell?

  4. Come rimappare i tasti sotto Linux solo per una tastiera specifica

  5. Perché il mio initrd ha solo una directory, vale a dire "kernel"?

Nozioni di base su Linux:come creare e installare chiavi SSH sulla shell

Come configurare il tuo sistema operativo Raspberry Pi per usarlo per la prima volta

Come impostare un corretto monitoraggio dei servizi in modo automatizzato? In modo che se uno si arresta in modo anomalo, l'auto si riavvia al volo?

Come installare uno dei migliori monitor di sistema per il desktop Linux

Come impostare l'utente predefinito per una distribuzione WSL che è stata installata manualmente con wsl --import

Come posso installare/creare un prompt personalizzato per i gusci di pesce?