У меня есть следующие команды:
eval $(ssh-agent -s)
'[[-f /.dockerenv]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n"> ~ /.ssh /config'
ssh-add <(echo "$ PRIVATE_KEY")
Может кто-нибудь объяснить, что делают эти команды, работая в Ubuntu Linux?
Вообще говоря, в контексте gitlab-runner они работают в документированной версии Ubuntu для настройки среды ssh (агент, ключи и config), чтобы у бегуна был доступ к git. репозиторий.
В частности:
eval $(ssh-agent -s)
... при этом запускается ssh-agent и настраивается среда (через eval) работающей оболочки для указания на этого агента. Агент будет (ниже) удерживать клавиши SSH.
'[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
... это (довольно деструктивно) смешивается с файлом конфигурации ssh (~/.ssh/config), чтобы сказать ssh не обращать большого внимания на ключи хоста, которые ssh обычно использует, чтобы гарантировать, что ваш сеанс ssh подключается только к проверенным хостам ,
ssh-add <(echo "$PRIVATE_KEY")
... и, наконец, это добавляет секретный ключ ssh к агенту (начато выше). Затем ключ будет использоваться, чтобы позволить бегуну получить ssh-доступ к git remote, который содержит код.
Если вы действительно хотите , чтобы узнать больше о том , как бегун работает, я предлагаю вам использовать man UAL страницы , чтобы понять каждую команду в последовательности.