Comment entrer le mot de passe du trousseau de clés par défaut via la ligne de commande?

12

Existe-t-il un moyen d'entrer le mot de passe du trousseau de clés par défaut à l'aide de la ligne de commande?

Par exemple:

Vous avez une configuration à distance d'Ubuntu 10.10 qui est définie sur la connexion automatique. Vous ne souhaitez pas supprimer le mot de passe du trousseau de clés.

Très bien, le système démarre et se connecte automatiquement, puis demande le mot de passe du trousseau maintenant à ce stade, vous pouvez créer des connexions ssh mais vous ne pouvez pas le bureau à distance.

Que pouvez-vous faire pour saisir le mot de passe du trousseau à ce stade?

De plus, pour mieux clarifier, il s'agit d'une connexion à distance utilisant la ligne de commande.

Jerkofalltrades
la source

Réponses:

10

Grâce à python-gnomekeyring , c'est relativement simple:

python -c "import gnomekeyring;gnomekeyring.unlock_sync(None, 'my password');"

Ou comme un bon script:

#!/usr/bin/env python
import gnomekeyring
gnomekeyring.unlock_sync(None, 'my password');

Je pense que vous n'avez pas besoin d'installer le package. Mais ça ne peut pas faire de mal d'essayer.


Gardez à l'esprit que le stockage de votre mot de passe sur votre disque dur représente un immense risque pour la sécurité. Vous devriez utiliser ceci à la place:

#!/usr/bin/env python

import gnomekeyring
import getpass

gnomekeyring.unlock_sync(None, getpass.getpass('Password: '));

Vous pouvez enregistrer ce script, par exemple, sous unlock-keyring.py, puis procédez comme suit:

sudo mv unlock-keyring.py /usr/bin/unlock-keyring
sudo chmod a+x /usr/bin/unlock-keyring

À partir de là, vous pouvez toujours simplement taper unlock-keyringet être invité à entrer un mot de passe. Ne faites pas cela avec la version qui contient votre mot de passe .

Vous pouvez remplacer Nonepar le nom de votre trousseau de clés, par exemple 'session', si vous souhaitez déverrouiller celui qui n'est pas la valeur par défaut.


J'ai du mal à tester cela correctement, alors faites-le moi savoir si cela ne fonctionne pas et je vais y jeter un œil tout de suite. Faites-moi également savoir si cela fonctionne :-)

Stefano Palazzo
la source
1
Ce paquet n'est plus livré avec Ubuntu :(
Grief
Voici quelques informations de libsecret (utilisé dans le nouveau gnome-keyring) man: "Dans libsecret, vous pouvez déverrouiller les éléments directement, et le résultat est (avec le démon gnome-keyring) que la collection englobante sera déverrouillée. Il n'est plus possible de passez un mot de passe pour déverrouiller les trousseaux de clés. Ceux-ci sont automatiquement demandés. "
Grief du
1

Cela fonctionne vraiment !!

Après beaucoup d'essais et d'erreurs, j'ai trouvé que l'ancien paquet fougueux "pam-keyring" contient toujours "pam-keyring-tool" que vous pouvez utiliser pour déverrouiller les trousseaux de clés à partir de la ligne de commande. Ubuntu a sorti l'outil du paquet après la sortie fougueuse, peut-être pour des raisons de sécurité ???

C'est ici:-

wget https://launchpad.net/ubuntu/+archive/primary/+files/pam-keyring_0.0.8.orig.tar.gz

déballez-le où vous voulez, puis faites: -

./configure
make

vous NE FAITES PAS l'installation parce que vous ne voulez pas qu'il mette à niveau le package à aucun moment.

puis modifiez dans le fichier de configuration de post-connexion rc.local pour ressembler à ceci: -

sudo gedit /etc/rc.local 

exec echo ENTER_YOUR_PASSWORD_HERE | /PATH_TO_PAM_KEYRING_TOOL/pam-keyring-tool --keyring=login -u -s

exit 0

salut presto!

matthew toft
la source
1

Merci à Stefano! Sa réponse m'a conduit à mi-chemin, mais j'ai trouvé que la méthode, par défaut, ne fonctionne que lors de l'exécution du script python à partir de la machine locale. Si vous exécutez localement, vous avez accès au trousseau de clés Gnome. Je voulais pouvoir exécuter son script via une session SSH, mais je continuais à recevoir "gnomekeyring.IOerror", car le trousseau de clés n'était pas accessible. Après beaucoup de recherches sur Google, j'ai trouvé la solution @ https://ask.fedoraproject.org/en/question/45246/error-communicating-with-gnome-keyring-daemon-in-ssh-session/

Pour distiller cette page jusqu'à la partie la plus pertinente qui s'applique à cette situation, ajoutez ce qui suit à votre script .bashrc.

# Export $DBUS_SESSION_BUS_ADDRESS when connected via SSH to enable access
# to gnome-keyring-daemon.
if [[ -n $SSH_CLIENT ]]; then
    export $(cat /proc/$(pgrep "gnome-session" -u "$USER")/environ | grep -z "DBUS_SESSION_BUS_ADDRESS=")
fi

Cela ne vaut rien que le modèle grep fourni dans le lien ne fonctionne pas pour moi, donc celui que j'ai ci-dessus est légèrement différent.

Robert
la source
Sur MInt 17.2, j'ai dû changer gnome-session en mate-session
frankster