У меня есть git-сервер для разработки, который развертывается на работающем сервере, когда live
ветка отправляется на. У каждого пользователя есть свой логин и, следовательно, post-receive
хук, который делает живое развертывание, запускается под своим собственным пользователем.
Поскольку я не хочу поддерживать открытые ключи пользователей в качестве авторизованных ключей на удаленном живом сервере, я создал набор ключей, принадлежащих системе git, для добавления к удаленным живым серверам (в post-receive
ловушке, которую я использую $GIT_SSH
установить закрытый ключ с -i
опцией).
Моя проблема заключается в том, что из-за того, что все пользователи могут захотеть развернуть их в режиме реального времени, закрытый ключ системы git должен быть, по крайней мере, читаемым для группы, а SSH действительно не нравится.
Вот пример ошибки:
XXXX@XXXX /srv/git/identity % ssh -i id_rsa XXXXX@XXXXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: id_rsa
Я оглянулся вокруг, ожидая найти что-то, что заставит ssh просто установить соединение, но я не нашел ничего, кроме людей, которые слепо говорили, что вы не должны разрешать доступ ни к чему, кроме одного пользователя.