Получение удаленного доступа к серверу с GitHub, удаленно

Я хочу настроить рабочий процесс развертывания с GitHub на свой сервер Digital Ocean. Для этого мне не нужно входить на сервер и вручную запускать git pull из репозитория моего сервера.

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

Существует очень мало документации о том, как сделать это для неподдерживаемой хост-компании (Digital Ocean), поэтому я решил, что один из способов сделать это удаленно - это:

  1. Настроить пользователя на моем сервере.
  2. Создать пару ключей SSH для этого пользователя
  3. Добавить открытый ключ пользователя в качестве ключа развертывания в моем репозитории Github
  4. Затем, когда я захочу для развертывания на моем локальном компьютере я бы просто отправил одну команду bash (что-то вроде cd / var / www / my-repo && git pull ) по ssh на сервер

Проблема в том, что он кажется, я могу дойти только до пункта 3. Чтобы клонировать / вытащить репозиторий из GitHub, мне нужно запустить ssh-agent в моей оболочке. Без этого пользователь моего сервера не сможет получить данные с GitHub.

Очевидным решением может быть просто отправить команду eval `ssh-agent -s` по сети вместе с моим компакт-диском. Команды и git pull . Однако, немного поэкспериментировав, я понял, что ssh-агенты не были убиты, когда я завершил сеанс оболочки с сервером. Это означало бы, что я буду запускать бездействующие процессы ssh-agent каждый раз, когда я хочу развернуть.

У меня двоякий вопрос:

  1. Это ужасный способ развертывания (для довольно скромного сайта)?
  2. Есть ли хороший чистый сценарий bash, который может запускать и уничтожать ssh-агент при каждом выполнении?

Мой сервер является сервером Debian.

0
задан 25 February 2017 в 02:55
1 ответ

В конце концов, я сделал две вещи для успешной аутентификации с помощью GitHub:

1) Создал SSH-ключ без парольной фразы и использовал его .pub как Deploy Key в репозитории GitHub.

2) Убедитесь, что ключ использовался при подключении, добавив следующее в ~ / .ssh / config :

host github.com HostName github.com IdentityFile ~ / .ssh / my-rsa Пользователь git

0
ответ дан 5 December 2019 в 08:33

Теги

Похожие вопросы