Сценарий:
Я запускаю ssh-agent на своем локальном ПК, и все мои серверы / клиенты настроены для переадресации аутентификации агента SSH. Я могу переключаться между всеми моими машинами, используя ssh-agent на моем локальном ПК. Это работает.
Мне нужно иметь возможность подключиться по SSH к себе как к пользователю (user1) , перейти на другого пользователя с именем user2 ( sudo -i -u user2 ), а затем использовать ssh на другой компьютер, используя ssh-agent, который я использую на своем локальном ПК. Допустим, я хочу сделать что-то вроде ssh user3 @ machine2 (при условии, что user3 имеет мой открытый SSH-ключ в своем файле author_keys).
Я настроил sudo, чтобы сохранить переменную среды SSH_AUTH_SOCK .
Все участвующие пользователи (пользователь [1-3]) являются непривилегированными пользователями (не root).
Проблема:
Когда я переключаюсь на другого пользователя, даже если переменная SSH_AUTH_SOCK установлена правильно (скажем, для нее установлено значение /tmp/ssh-HbKVFL7799/agent.13799), пользователь user2 не имеет доступа к сокету, который был создан пользователем user1 - который из Конечно, имеет смысл, иначе user2 может перехватить закрытый ключ user1 и переключиться на него как на пользователя.
Этот сценарий прекрасно работает, если вместо получения оболочки через sudo для user2 я получаю оболочку через sudo для root. Потому что естественно root имеет доступ ко всем файлам на машине.
Вопрос:
Желательно, используя sudo, как я могу перейти с user1 на user2, но при этом иметь доступ к SSH_AUTH_SOCK пользователя1?