Я пытаюсь настроить привязку git post-update для моего репозитория gitosis, чтобы обновить рабочую копию на удаленном сервере. Какой лучший и самый безопасный способ запустить скрипт на удаленном сервере без необходимости аутентификации, поскольку ловушка будет запущена от имени пользователя gitosis на одной машине, у которой нет аналога на другой машине.
Я рассматривал возможность использования публичной / закрытой пары ключей без парольной фразы, которую я использую, чтобы сценарий автоматически обновлял рабочую копию на локальном сервере (для gitosis, а не ssh), но я немного не решаюсь использовать тот же ключ для аутентификации через ssh, поскольку если закрытый ключ каким-либо образом скомпрометирован, злоумышленник может войти в систему без аутентификации. Или я слишком сильно волнуюсь, и разрешения все равно позаботятся об этом (закрытый ключ должен быть chmod 0600)?
Я думаю, что способ с использованием закрытого / открытого ключа является наиболее распространенным для таких вещей. Я бы сделал то же самое.
«Лучший и самый безопасный способ» - это, вероятно, git pull
когда вы используете рабочую копию удаленного сервера или добавляете сервер как git "remote" и нажимаете на него одновременно.
В качестве альтернативы будет работать беспарольный открытый ключ. Я бы предложил использовать другой ключ, отличный от того, который вы используете для чего-либо еще, и настроить SSH, чтобы разрешать принудительные команды только при входе в систему с этим ключом (добавьте command="...."
в часть параметров authorized_keys, если вы используете OpenSSH), даже если ваш ключ является скомпрометированы все, что они могут сделать, это обновить ваш репозиторий git.