201 votes

transfert de ssh-agent et sudo à un autre utilisateur

Si j'ai un serveur A auquel je peux me connecter avec ma clé ssh et que j'ai la possibilité de "sudo su - otheruser", je perds la redirection des clés, car les variables env sont supprimées. et le socket n'est lisible que par mon utilisateur d'origine. Existe-t-il un moyen de contourner le transfert de clé par le "sudo su - otheruser", afin que je puisse faire des choses sur un serveur B avec ma clé transférée (git clone et rsync dans mon cas) ?

Le seul moyen auquel je pense est d'ajouter ma clé à authorized_keys de l'autre utilisateur et de faire "ssh otheruser@localhost", mais c'est lourd à faire pour chaque combinaison d'utilisateur et de serveur que je peux avoir.

En bref :

$ sudo -HE ssh user@host
(success)
$ sudo -HE -u otheruser ssh user@host
Permission denied (publickey).

1voto

kolypto Points 10468

J'ai utilisé la combinaison suivante :

$ chmod g+rwx -R $(dirname $SSH_AUTH_SOCK)
$ sudo -HPEu ubuntu bash
$ ssh-add -L
ssh-rsa AAAA..kd /home/kolypto/.ssh/id_rsa
  1. donne plus de permissions au socket de l'agent ssh
  2. exécute la commande (bash) en tant qu'autre utilisateur ( -u ), la préservation de l'environnement ( -E ), en préservant le groupe de l'utilisateur original ( -P ), et en fixant le $HOME correctement ( -H )
  3. vérifiez que les clés ssh sont disponibles

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X