Добрый день!
Есть следующая задача. На некотором веб-сервисе есть библиотека скриптов, которые хочется версионировать.
Решение видится такое:
- Создаем пустую папку
- Клонируем в нее репозиторий с сервера
- Скачиваем библиотеку скриптов через API
- Проверяем, есть ли изменения в файлах
- Если изменения есть, то отправляем на сервер
Все хорошо, кроме взаимодействия с git-сервером. Хочется, чтобы скрипт авторизовывался через ssh-ключ. Поиски в интернете не дали другого решения, кроме как записать ключ в
~/.ssh
. К сожалению, такое решение не подходит, поскольку скрипт будет выполняться на агентах TeamCity и хотелось бы иметь возможность просто подложить ему ключик.
Вопрос возник, потому что:
- В ssh можно указать, какой ключ использовать.
ssh -i $path_to_key
- В SourceTree можно указать сторонний ключ для git
- В teamcity есть своя библиотека ключей, которыми она авторизуется
- Тем не менее, ключ у git для подмены ssh-ключа я не нашел
Возможно, эту задачу можно решить не через стандартную утилиту, но через сторонние библиотеки для языков программирования? Подойдет любой вариант.
Заранее спасибо за помощь!
UPD1: редактирование файла
~/.ssh/config
подошло бы, если бы не:
- Речь идет об агентах teamcity. В таком случае, получается, что на всех агентах, где запускается скрипт, должен быть исправлен конфиг, либо я должен ограничить список агентов, на которых запускается скрипт. Такое решение не сильно отличается от подкладывания файла
~/.ssh/id_rsa
- Скрипт, скорее всего, будет запускаться на Windows-машинах. Это означает, что централизовано подложить
~/.ssh/config
будет проблематично.