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
Répondre
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]
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
C'est pareil. C'est comme ça qu'un agent travaille. Vous n'avez qu'à ajouter les bonnes clés à l'agent. – slowjack2k
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
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
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