2011-06-15 5 views
0

У меня есть сборка Ant, которая иногда выполняет «git push» в каталоге на моем сервере. Я могу сделать это в интерактивном режиме, потому что он запрашивает ключевую фразу для моего ключа, но это становится проблематичным, если вы настраиваете задание cron для запуска сборки без присмотра.SSH и автоматические процессы

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

я увидел, что кто-то предложил, чтобы запустить хрон как демон здесь: Accessing SSH key from bash script running via a cron job - но я не знаю, как я мог бы сделать это или положить в моей ключевой фразы, не ставя под угрозу его, поместив его в виде обычного текста и т.д.

Любая помощь очень ценится.

ответ

0

Во-первых, настройтесь на вход без пароля.

Используйте ssh-keygen для создания пары открытого/закрытого ключа с no пароль. Добавить открытый ключ в ~/.ssh/authorized_keys на сервере.

Затем запустите ssh -i /path/to/private_key server, чтобы подтвердить, что логин без пароля работает.

И, наконец, configure git to use that ssh -i ... command.

Как подсказывает @mah, вы можете создать определенную учетную запись git на сервере. Вы добавляете открытый ключ в ~ git/.ssh/authorized_keys, чтобы включить логин без пароля.

authorized_keys также имеет опции для ограничения того, какие команды могут запускать входящие соединения. Если вас интересуют эти функции, прочитайте документацию SSH.

И, конечно же, вы хотите, чтобы файл закрытого ключа читался только вами.

+0

Каковы преимущества создания учетной записи git на сервере? – jimlamiell

+0

Изоляция. Аккаунту 'git' можно получить доступ только к тем данным, которые ему необходимы для выполнения своей работы. Поэтому, если кто-либо компрометирует учетную запись (или ваш секретный ключ), они могут испортить ваш репозиторий git, а не повредить что-либо еще. – Nemo

+0

Можете ли вы описать настройку с учетной записью git, я все еще немного потерял это. Куда будут идти ключи, и как я смогу запустить сборку муравьев из учетной записи git, которая находится в исходной учетной записи? – jimlamiell

0

Я бы решил это, создав ограниченную учетную запись на сервере git и попросив клиента ant использовать ключ без ключа для этой ограниченной учетной записи.

+0

Можете ли вы описать это немного больше? Кроме того, git-репозиторий также находится на моем сервере, и я использую SSH для перемещения с моего сайта в репозиторий на другом подобласте. – jimlamiell

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