Назад | Перейти на главную страницу

Как передать SSH_AUTH_SOCK через sudo (Permission denied (publickey).)

У меня есть сервер Ubuntu с пользователями: ubuntu и user

Я подключаюсь к каждому из пользователей, используя ssh -A (чтобы передать ключи моей локальной машины в SSH). Из любой пользователей, которых я могу подключиться к SSH-серверу Github:

$ ssh -T git@github.com
...
Hi gabipetrovay! You've successfully authenticated, but GitHub does not provide shell access.

Но когда я пытаюсь подключиться из ubuntu с помощью sudo, от имени user

sudo -E -u user ssh -T git@github.com

Я получаю Permission denied (publickey) ошибка.

Используя -vv вариант для ssh Я вижу, что при запуске с sudo от имени user из ubuntu ключ на моей машине не предлагается серверу ssh. Для сравнения:

непосредственно форма user:

debug2: key: /Users/gabriel/.ssh/id_rsa (0x7fbf09390020),
debug2: key: /home/mono/.ssh/id_rsa ((nil)),
debug2: key: /home/mono/.ssh/id_dsa ((nil)),
debug2: key: /home/mono/.ssh/id_ecdsa ((nil)),
debug2: key: /home/mono/.ssh/id_ed25519 ((nil)),

из ubuntu с помощью sudo -u user:

debug2: key: /home/mono/.ssh/id_rsa ((nil)),
debug2: key: /home/mono/.ssh/id_dsa ((nil)),
debug2: key: /home/mono/.ssh/id_ecdsa ((nil)),
debug2: key: /home/mono/.ssh/id_ed25519 ((nil)),

Так кажется, что через sudo сокет SSH_AUTH_SOCK не рассматривается.

Я также добавил Defaults env_keep+=SSH_AUTH_SOCK к /etc/sudoers но это все равно не работает.

Как я могу этого добиться? Мне нужно выполнить ssh и git команды от пользователя ubuntu от имени user пользователь.

Помимо добавления Defaults env_keep+=SSH_AUTH_SOCK к sudoers, вам также необходимо предоставить user доступ к файлу, указанному переменной SSH_AUTH_SOCK. По умолчанию он не включен.