1 votes

Comment puis-je utiliser launchctl getenv via ssh ?

Dans une session de terminal, je peux exécuter launchctl getenv SSH_AUTH_SOCK et il imprime la valeur de cette variable. Cependant, si je me connecte au même utilisateur à partir d'un autre ordinateur et que j'exécute la même commande, il n'y a pas de résultat. J'aimerais savoir comment faire pour que cela fonctionne.

C'est important pour moi car :

  1. mes clés ssh ont des phrases de passe
  2. L'invite de mon terminal comprend bash-git-prompt
  3. ce qui conduit au message Enter passphrase for key [~/.ssh/...]: qui s'imprime à chaque fois que mon invite est écrite à l'écran lorsque je n'ai pas accès au socket de l'agent ssh.
  4. launchd définit le chemin de la socket de l'agent ssh pour qu'il puisse utiliser la fonctionnalité fantaisiste "ne s'exécute que si nécessaire" de launchd, donc je ne connais pas le chemin à l'avance et il change au redémarrage.

1voto

Jose Chavez Points 645

Ce que vous décrivez est la façon dont les choses sont censées fonctionner. La raison pour laquelle la commande ne laisse aucune sortie n'est pas qu'un bug ou une erreur se soit produite qui l'empêche d'afficher la valeur de SSH_AUTH_SOCK - c'est simplement parce que cette variable n'est pas censée être définie par launchd dans votre environnement.

Lorsque vous utilisez l'authentification par clé avec SSH, et que vous voulez un agent pour faciliter la gestion des clés privées, vous devez exécuter cet agent. localement . Par exemple, lorsque vous vous connectez par ssh à un ordinateur distant, l'agent est censé fonctionner sur l'ordinateur local à partir duquel vous vous connectez par ssh.

Imaginez que vous vous connectiez par ssh à un ordinateur distant, que vous vouliez ensuite utiliser ssh à partir de cet ordinateur et que vous deviez entrer une phrase de passe - l'invite apparaît dans l'interface graphique affichée sur le moniteur connecté à cet ordinateur distant. Vous ne pouvez pas la voir, vous ne pouvez pas agir avec elle. Ce n'est pas comme ça que c'est censé fonctionner.

Exécutez plutôt l'agent ssh sur votre ordinateur local, chargez les clés, puis connectez-vous à vos ordinateurs distants à l'aide de l'agent ssh. -A pour ssh afin d'activer le transfert d'agent (ou le définir de façon permanente pour cet ordinateur distant dans la configuration).

Si vous voulez vraiment exécuter ssh-agent sur l'ordinateur distant, vous pouvez bien sûr le faire. Lorsque vous vous êtes connecté à l'ordinateur distant, il vous suffit de lancer ssh-agent et d'ajouter vos clés. Si vous souhaitez automatiser l'exécution de ssh-agent, vous pouvez le faire.

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