Github: керування SSH ключами
Доступ до репозиторію (Deploy key)
В цьому випадку ми надаємо доступ серверу до GitHub.
Для того щоб використовувати репозиторій на ПК або сервері, потрібно встановити відповідний публічний ключ на Github.
1. Генеруємо ключі (публічний та приватний), якщо їх ще немає або потрібні нові:
ssh-keygen -t ed25519 -C "server-deploy"
2. Після виконання кроку №1, копієюмо публічний ключ:
cat ~/.ssh/id_ed25519.pub
3. Йдем на GitHub у свій репозиторій, далі Settings → Deploy keys → Add deploy key
4. Вставляємо новий ключ з зрозумілою назвою. Флаг Allow write access не ставимо, щоб сервер мав доступ лише на читання.
5. На сервері перевіряємо чи пускає нас Github за цим ключем:
ssh -T [email protected]
Доступ до сервера для GitHub (Actions Secret Key)
В цьому випадку ми надаємо GtiHub доступ до сервера. Наприклад для налаштування GitHub Actions. Нам потрібно додати приватний ключ на Github, а публічний ключ, який ми згенеруємо на сервері, додати у список авторизованих на цьому ж сервері.
1. Генеруємо нову пару ключів (або використовуємо попередні)
ssh-keygen -t ed25519 -C "server-deploy"
2. Додаємо публчний ключ у список авторизованих для юзера який буде працювати з проектом (наприклад root)
cat ~/.ssh/id_ed25519.pub>> ~/.ssh/authorized_keys
Виставляємо потрібні дозволи:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
3. Передаємо приватний ключ у GitHub Actions. Для початку копіюємо його:
cat ~/.ssh/id_ed25519
4. Пеходимо в потрібний репозиторій –> Settings → Secrets and variables → Actions –> New repository secret
5. Створюємо новий секрет SSH_PRIVATE_KEY та вставляємо туди наш приватний ключ
Далі цей секрет ми можемо використовувати в пайплайні для підключення до сервера. Не забудьте також додати змінні SERVER_HOST та SERVER_USER з відповідними даними для входу.