Skip to main content

FTP авторизация на серверах | разброс pubkey по серверам через CI/CD runner

FTP (SFTP) авторизация на серверах происходит по средствам ssh ключей. Алгоритм действий такой:

Генерируем новый ключ. 


Screenshot at Sep 13 11-46-51.png

Обязательно проверяем, чтобы порт стоял 22!

Screenshot at Sep 13 11-47-08.png

Screenshot at Sep 13 11-47-47.png

Генерируем ключ

Screenshot at Sep 13 11-51-24.png

Сохраняем закрытый (private key) в папку пользователя для ssh ключей:

%HOMEPATH%/.ssh

В поле Key comment (ОБЯЗАТЕЛЬНО) дописываем почту сотрудника, либо фамилию + инициалы, кому принадлежит этот ключ, либо имя устройства например: DESKTOP-T3SG4BN admin@webrazrabotka.ru или ageev_an_work_pc

 




Screenshot at Sep 13 11-52-42.png

Копируем открытый ключ (public key) и сохраняем в файле authorized_keys на gitlab с комментарием в конце строки

Screenshot at Sep 13 11-53-36.png

Добавляем открытый ключ пользователя в наш gitlab 

  • Закрытый ключ (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 ключу много уроков на ютубе. 

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

  • Делаем гит клон репозитория "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.