O que os comandos eval e ssh-agent fazem?

0

Eu tenho abaixo os comandos:

eval $(ssh-agent -s)

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

ssh-add <(echo "$PRIVATE_KEY")

Alguém pode explicar o que esses comandos estão fazendo no linux do Ubuntu?

    
por user61766 07.09.2018 / 07:18

1 resposta

0

De modo geral, e no contexto de um gitlab-runner, eles estão rodando em uma versão do Ubuntu para configurar o ambiente ssh (agent, keys e config) para tornar possível ao executor tenha acesso ao repositório git.

Especificamente:

eval $(ssh-agent -s)

... isso inicia ssh-agent e configura o ambiente (via eval ) do shell em execução para apontar para esse agente. O agente irá (abaixo) segurar as chaves ssh.

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

... isso (de forma destrutiva) mucks com o arquivo ssh config ( ~/.ssh/config ) para informar ssh para não prestar muita atenção às chaves do host que ssh usaria normalmente para garantir que seu ssh session está se conectando apenas a hosts validados.

ssh-add <(echo "$PRIVATE_KEY")

... e finalmente, isso adiciona a chave ssh privada ao agente (iniciado acima). A chave será então usada para permitir que o corredor obtenha acesso ssh ao controle remoto que contém o código.

Se você realmente quiser saber mais sobre como o runner está funcionando, sugiro que use as páginas man ual para entender cada comando em sequência.

    
por 10.09.2018 / 17:54

Tags