Skip to main content

Авторазброс pubkey по серверам

Добавление открытого ключа пользователя в наш gitlab и разброс по серверам через CI\CD раннер

    Закрытый ключ (private key) сохраняем у пользователя в директории:
    %HOMEPATH%/.ssh

    И добавляем его, чтобы на него была ссылка в строке "Файл закрытого ключа"

    Screenshot at Sep 13 11-47-47.png

    Открытый ключ (public key) нужно занести в наш GitLab, в файл  authorized_keys одной строкой, в конце можно и нужно добавить произвольный комментарий для идентификации на каком пк и какому пользователю принадлежит ключ.

    Пример: 

    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM0nRkbG4LzXHGNNTCyklqDQ/yzLX1XSdva83ncF eddsa-key-20250424 WORK Matatov_V DESKTOP-T3SG4BN

    Всё выделенное жирным шрифтом, через пробел после ключа считается комментарием.

    Репозиторий приватный, по этому перед этим нужного пользователя сначала нужно добавить в репозиторий с соответствующими правами. 
    Как выполнить авторизацию к git по ssh ключу много уроков на ютубе. 

    Если все равно непонятно, можно попросить помощи разработчиков.

    Самый простой способ добавить строку вручную через интерфейс gitlab, написать коммит кому принадлежит ключ и автоматически запустится раннер.

    Обновления ключей через git

    • Авторизуемся в git через git bash here в контекстном меню:

      изображение.png

    Если ключа нет генерируем его командой ssh-keygen -t ed25519 -C {Комментарий кому принадлежит ключ}
    после этого нужно добавить открытую часть ключа в gitlab в настройках. Ключи лежат в %HOMEPATH%/.ssh

    • Инициализируем ssh агента командой:
      ssh-agent -s
    • Проверяем инициализацию командой:
       ssh-add -l
    • Добавляем свой ssh ключ командой:
      git ssh-add {путь до закрытого ключа}
    • Делаем гит клон репозитория "Send keys account":
      git clone git@gitlab.com:Webrazrabotka/send-keys-accounts.git
    • Публичную часть ключа вставляем в файл authorized_keys, который потом разнесется по всем аккаунтам.


    Screenshot at Sep 13 11-53-36.png

    Screenshot at Sep 13 11-54-35.png

    • Пушим в ветку изменения командой:
    git push git@gitlab.com:Webrazrabotka/send-keys-accounts.git

    CI/CD в данном случае автоматически разносит ключ по всем аккаунтам которые выдает API.
    В случае отсутствия массива аккаунтов смотреть в первую очередь API.