Я использую Vagrant для обеспечения среды разработки.Автоматизация конфигурации ключа SSH для Jenkins и GIthub Through Vagrant
Vagrant делает что-то похожее на следующее:
- Устанавливает Дженкинс (и Java, поскольку его зависимостей)
- ... Другая зависимость устанавливает ....
копии закрытого ключа
id_rsa
SSH к/.ssh
в$JENKINS_HOME
которая/var/lib/jenkins/
Выполнить через скрипт, который клонирует все операции РЕПО GitHub и стро ds и развертывает проекты.
Вопрос, который мы имеем, состоит из #3
в приведенном выше списке.
Поскольку нам нужно, чтобы это выполнялось в скрипте, мы не можем вручную запустить команду с GitHub, чтобы добавить запись в known_hosts
. Таким образом, я попытался с помощью следующих действий:
sudo -u jenkins ssh-keyscan github.com > /var/lib/jenkins/.ssh/known_hosts
Я также попытался запустить это без использования jenkins
пользователя, но безуспешно.
Вот скрипт, который указывает Vagrantfile
после установки Jenkins.
#Setup SSH for GitHub
echo "Configuring GitHub SSH Keys..."
if [ ! -d /var/lib/jenkins/.ssh ];
then
#copy private key to $JENKINS_HOME/.ssh
sudo mkdir -p /var/lib/jenkins/.ssh
sudo cp /vagrant/ssh/id_rsa /var/lib/jenkins/.ssh/
#Modify permissions so jenkins user can access
sudo chown -R jenkins:jenkins /var/lib/jenkins/.ssh/
sudo chmod 0600 /var/lib/jenkins/.ssh
sudo chmod 0600 /var/lib/jenkins/.ssh/id_rsa
#Add GitHub to known_hosts so it doesn't prompt us
sudo -u jenkins ssh-keyscan github.com > /var/lib/jenkins/.ssh/known_hosts
else
echo "GitHub SSH Keys already configured..."
fi
Я делаю это совершенно неправильно?
ПРОБЛЕМА состоит в том,
я ссылки и видел подобные вопросы, такие, как пост ссылки удара
Authenticate Jenkins CI for Github private repository