Что делают команды eval и ssh-agent?

0

У меня есть следующие команды:

eval $ (ssh-agent -s)

'[[-f /.dockerenv]] && echo -e "Host * \ n \ tStrictHostKeyChecking no \ n \ n"> ~ / .ssh / config'

ssh-add <(echo "$ PRIVATE_KEY")

Может кто-нибудь объяснить, что делают эти команды, работая в Ubuntu Linux?

user61766
источник
Почему вы запускаете эти команды? Или каков контекст - что их запускает?
Xen2050
контекст заключается в том, что они выполняются в gitlab-runner - виртуальном сервере - для задачи непрерывной интеграции для создания проекта и развертывания двоичного файла проекта на удаленном сервере, поэтому gitlab необходимо подключиться по ssh к удаленному серверу, чтобы запустить приложение на удаленном сервере
user61766

Ответы:

0

Вообще говоря, в контексте gitlab-runner они работают в документированной версии Ubuntu для настройки sshсреды (агента, ключей и конфигурации), чтобы у бегуна был доступ к репозиторию 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, чтобы понять каждую команду по порядку.

малиново-цапля
источник