2011-07-12 6 views
0

Мы используем PHP-модуль SSH2 для запуска команд на удаленных серверах. Мы аутентифицируемся с помощью открытых ключей (ssh2_auth_pubkey_file()), но проблема в том, что мы должны скопировать ключ id_dsa (private) и id_dsa.pub (public) в корневой каталог нашего веб-сервера (lighttpd) и сделать их chmod 644, иначе мы получаем «Ошибка аутентификации для root с использованием открытого ключа». Это похоже на проблему безопасности MAJOR. Есть ли способ сохранить права доступа на id_dsa chmod 600 и не сделать его доступным для чтения веб-сервером, то есть владельцем и группой по-прежнему root: root вместо lighttpd: lighttpd?PHP SSH2 Аутентификация с помощью открытых ключей

+0

@Kerrek: Я бы сказал об окончательном ответе ... – Wrikken

+0

Ха-ха, хорошо, я отправлю его в качестве ответа. –

ответ

1

Как веб-сервер должен идентифицировать себя, если он не может прочитать закрытый ключ? Он должен быть читаемым для процесса веб-сервера, но он также должен быть 0400. В качестве альтернативы можно использовать suexec или что-то в этом роде, чтобы процесс регистрации мог выполняться другим пользователем.

Сказанное, если есть какой-либо способ, которым веб-серверу может быть поручено выполнить какую-либо удаленную деятельность администратора, вам все равно придется тщательно подумать о последствиях безопасности. Независимо от того, насколько безопасно вы держите ключ, если в любом случае может уговорить сервер выполнить удаленное действие, у вас все еще есть проблемы.

 Смежные вопросы

  • Нет связанных вопросов^_^