35 votes

Comment puis-je accéder au trousseau de clés à distance à partir de la ligne de commande ?

Je stocke divers mots de passe (par exemple pour des serveurs de messagerie distants) dans mon trousseau. À partir de la ligne de commande, lorsque je suis connecté localement, je peux les récupérer via :

security unlock-keychain ~/Library/Keychains/login.keychain
<enter password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com
<dumps keychain attributes, not including password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com -g
<dumps keychain attributes, including password>

Cependant, les résultats ne peuvent pas être obtenus lorsqu'ils sont exécutés à distance (en se connectant à la boîte depuis un autre endroit). boîte depuis un autre endroit) :

security unlock-keychain ~/Library/Keychains/login.keychain
<enter password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com
<dumps keychain attributes, not including password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com -g
<nothing printed, to stdout or stderr>

De plus, la valeur de retour de la commande finale (en utilisant -g) est 36.

J'ai récupéré la sortie de set à partir d'une connexion locale et l'a comparée à une connexion distante. et les variables d'environnement manquantes sont :

Apple_PubSub_Socket_Render
GPG_AGENT_INFO
SECURITYSESSIONID
TERM_PROGRAM
TERM_PROGRAM_VERSION
TERM_SESSION_ID
XPC_FLAGS
XPC_SERVICE_NAME

Qu'est-ce que je rate ? J'ai bien SSH_AUTH_SOCK fixé à une valeur valide (retourné de ssh-agent ).

14voto

knockNrod Points 11

security -i unlock-keychain

fonctionne pour moi sous MacOS 10.13.4 High Sierra.

Après avoir étudié la solution de Karthick, j'ai trouvé ceci. Le -i rend la commande interactive et vous demande votre mot de passe dans le terminal.

13voto

James Elliott Points 251

En reproduisant ce problème, je remarque que mon trousseau de clés est configuré pour "Confirmer avant d'autoriser l'accès". Ainsi, lorsque j'exécute la commande find-internet-password localement avec le -g j'obtiens une boîte de dialogue indiquant veut utiliser vos informations confidentielles stockées dans "smtp.gmail.com" dans votre trousseau de clés. Si je clique sur "Autoriser", cela fonctionne, si je clique sur "Refuser", cela échoue de la même manière que l'échec de l'opération. ssh avec un code de retour de 51 . Access confirmation dialog

Lorsque j'essaie la commande à distance via ssh le -g entraîne immédiatement un échec, avec le statut de 36 que vous rapportez.

Je pense que c'est parce que, lorsque vous ssh il n'y a aucun moyen pour le système de faire apparaître une boîte de dialogue vous permettant de confirmer que vous voulez autoriser l'accès à l'ordinateur. security pour accéder à ces informations.

J'ai réussi à faire fonctionner la commande en étant connecté par ssh en cliquant d'abord sur l'option "Toujours autoriser" lors de l'exécution locale de la commande. Cela met à jour les autorisations dans Keychain de sorte que je n'ai plus besoin de répondre à la boîte de dialogue (même localement), ce qui lui permet de fonctionner à distance également.

Je ne sais pas si cela vous sera entièrement utile, cependant, car je pense que cela signifie que vous devrez accorder de manière préventive le droit d'accès à l'information. security de programmer l'accès à tous les éléments du trousseau auxquels vous souhaitez accéder à distance. Il est peut-être possible d'écrire un script pour faire cela ?

Si vous faites cette expérience manuellement et que vous voulez ensuite révoquer cet accès, vous pouvez accéder à l'élément concerné dans Accès au trousseau, puis choisir Obtenir des informations et regardez le Contrôle d'accès onglet. Vous verrez une entrée pour security là, que vous pouvez supprimer : Access Control Dialog

8voto

karthick Points 71

Tant que le trousseau de sécurité est dans l'emplacement par défaut, vous pouvez exécuter la commande ci-dessous pour le déverrouiller. Elle ne demande pas de mot de passe. Cela a fonctionné à distance.

security unlock-keychain -p "enter password"

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X