GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter le trousseau d'une manière qui n'a que la première invite du shell pour les clés au démarrage ?

J'ouvre plusieurs onglets shell lorsque je démarre KDE et je viens d'ajouter keychain à mon ~/.shellrc le problème est que tous les onglets demandent des mots de passe clés lorsque je me connecte. C'est assez ennuyeux de faire ça. Existe-t-il une bonne solution pour que tous les onglets démarrent simplement, et une fois que je me suis connecté à un onglet, tous ont les clés chargées ?

Réponse acceptée :

Voici deux méthodes :

Vous pouvez vous assurer que le trousseau ne s'ouvre que sur un seul onglet comme ceci :

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

Mais ce n'est peut-être pas sur le premier onglet sur lequel vous atterrissez - vous devrez peut-être le chercher, ce qui pourrait être tout aussi ennuyeux. Cela fonctionne car mkdir est une opération atomique - un seul script réussira et celui-là affichera l'invite.

Une autre méthode affichera l'invite sur tous les onglets, mais les quittera une fois que vous aurez répondu sur l'un d'entre eux. Vous pouvez interroger un fichier ou utiliser des outils inotify comme celui-ci :

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

Celui-ci présente l'invite, mais commence d'abord par un observateur pour voir si un fichier est supprimé. Une fois l'invite satisfaite, le fichier est supprimé et l'observateur supprimera toutes les autres invites en attente. inotifywait provient d'inotify-tools ; inotify est une API Linux. Il peut y avoir une API similaire sur d'autres Unix, mais si ce n'est pas le cas, vous n'avez besoin que d'une boucle qui interroge pour voir si le fichier est supprimé.


Linux
  1. Comment supprimer la sortie de Grep, afin qu'elle ne renvoie que le statut de sortie ?

  2. Comment configurer une surveillance appropriée des services de manière automatisée ? Alors que si One Crash It Auto On The Fly redémarre?

  3. Fish Shell :comment puis-je personnaliser les couleurs de la fonction de saisie semi-automatique ?

  4. Comment différencier uniquement la première ligne de deux fichiers?

  5. Comment obtenir uniquement l'utilisateur, le pid et la commande exécutée pour un processus spécifique ? (Ubuntu 11.10)

Principes de base de Linux :Comment créer et installer des clés SSH sur le shell

Comment configurer votre Raspberry Pi OS pour l'utiliser pour la première fois

Comment installer l'un des meilleurs moniteurs système pour le bureau Linux

Comment définir l'utilisateur par défaut pour une distribution WSL qui a été installée manuellement avec wsl --import

Comment exécuter la commande Vim depuis le shell ?

Pourquoi mon initrd n'a-t-il qu'un seul répertoire, à savoir "kernel" ?