2017-05-20 1 views
0

Je crée une machine virtuelle avec Vagrant et utilise le paramètre 'config.ssh.forward_agent = true' pour transférer les informations d'identification SSH de mon système d'exploitation hôte, mais j'ai du mal à comprendre comment partager les informations d'identification entre les comptes d'utilisateurs. Le compte 'vagabond' par défaut a l'environnement SSH_AUTH_SOCK var pointant vers un fichier de socket sous/tmp/ssh * qui est généré/nommé dynamiquement. Si je ssh dans ce compte et que j'utilise setfacl pour donner à mon utilisateur 'foobar' rwx perms au fichier, je passe à mon compte 'foobar' et manuellement ma variable SSH_AUTH_SOCK pour pointer vers le même fichier socket, alors tout fonctionne. Mais cela semble être une approche vraiment hacky et je ne peux pas penser à une manière propre à cela automatiquement lors du provisionnement. Des idées sur comment je peux accomplir cela correctement?Partage des informations d'identification transmises par ssh-agent aux utilisateurs avec Vagrant

+0

Qu'est-ce que vous essayez d'atteindre? Si vous utilisez Sudo, vous pouvez configurer Sudo pour garder la variable auth sock et tout fonctionne correctement. – slowjack2k

+0

Je veux être en mesure de me connecter à la machine virtuelle avec différents comptes (pas root/vagabond) et utiliser mes informations d'identification SSH à partir du système d'exploitation hôte sans sudo. – Tyson

+0

Si je ne me trompe pas, vous voulez que SSH soit à l'intérieur de l'hôte vagabond sur le même hôte vagabond avec différents utilisateurs. Dans ce cas, il suffit de définir "ForwardAgent yes" dans '~/.ssh/config' pour chaque utilisateur. – slowjack2k

Répondre

1

Vous devez d'abord exécuter ssh-agent sur votre ordinateur hôte (par exemple hostm). Peut-être que cela vagabonde pour vous. Vous pouvez le faire manuellement via eval ssh-agent dans votre profil par exemple ou directement dans votre shell actuel.

config.ssh.forward_agent dans votre fichier vagabond doit être true.

Tous les utilisateurs de votre machine client (disons vagrant.box) doivent avoir la clé publique de l'utilisateur "foo" dans leur fichier authorized_keys (assurez-vous que les permissions de répertoire et de fichier sont respectées!).

Tous les utilisateurs de vagrant.box doivent avoir défini ForwardAgent yes au sein de leur ~/.ssh/config. Enfin, vous devez ajouter votre clé privée à l'agent SSH sur hostm via ssh-add what_ever_your_private_key_is sur hostm.

Ensuite, vous devriez être en mesure de se connecter à vagrant.box de votre hostm via ssh [email protected] et à partir de là ssh [email protected]

+0

Merci, mais je ne suis pas sûr que cela m'amène où je veux aller. Je ne veux pas entrer dans le compte 'vagabond' sur la machine virtuelle invitée, puis ssh dans mon compte 'barre' à partir de là; Je veux juste ssh directement dans 'bar' et ensuite être capable de ssh dans les mêmes endroits que je peux depuis mon compte 'foo' sur l'hôte (par exemple pour pouvoir utiliser GitHub, etc.). – Tyson

+0

C'est pareil. C'est comme ça qu'un agent travaille. Vous n'avez qu'à ajouter les bonnes clés à l'agent. – slowjack2k