2

У меня есть веб-сервер с выделенным непривилегированным пользователем, который запускает экземпляр apache на коробке. Код php для приложения, которое запускает веб-сервер, находится в частном репозитории github, который мне иногда требуется для обновления git pull.

Я хочу использовать свои личные учетные данные (мой локальный ключ id_rsa), но из соображений безопасности я настроил ящик так, чтобы я мог получить доступ к нему только через вторую учетную запись без полномочий root с доступом sudo, а затем sudo -iu username на веб-сервере пользователя.

Я попытался включить переадресацию ssh-agent, и даже заставил sudo оставить переменную env SSH_AUTH_SOCK, но файл soh auth имеет неправильные разрешения (700 для пользователя, в которого я ssh'd).

Я проверил, что ключ действительно добавлен к агенту, и что он доступен от первого пользователя. Я попытался ssh-add -L от пользователя веб-сервера и получил ответ, что он не может подключиться к ssh-agent. Я подозреваю, что это потому, что разрешения неправильные.

Есть ли способ изменить разрешения в автоматическом режиме?

Или я иду по этому пути неправильно?

1 ответ1

0

У меня была такая же проблема - на коробке Gentoo - где я могу войти только как обычный пользователь, но мне нужно было использовать переадресацию агента для учетной записи root. От man su:

'-M'

'-п'

'--preserve-environment' Не изменять переменные среды HOME, USER, LOGNAME или SHELL. Запустите оболочку, указанную в переменной среды SHELL, вместо оболочки из записи пользователя passwd, если только пользователь, выполняющий su, не является суперпользователем, а оболочка пользователя ограничена. Оболочка с ограниченным доступом - это оболочка, которая не указана в файле /etc /shells или в скомпилированном списке, если этот файл не существует. Части того, что делает эта опция, могут быть переопределены --login и --shell.

Так

su -m -

сохранил переменную окружения $SSH_AUTH_SOCK и дал мне желаемый результат.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .