![eval 和 ssh-agent 命令起什么作用?](https://linux22.com/image/1569860/eval%20%E5%92%8C%20ssh-agent%20%E5%91%BD%E4%BB%A4%E8%B5%B7%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
我有以下命令:
评估$(ssh-agent-s)
'[[ -f /.dockerenv ]] && echo -e "主机 *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
ssh-add <(echo "$PRIVATE_KEY")
有人能解释一下这些命令在 ubuntu linux 中运行的作用吗?
答案1
一般来说,在 gitlab-runner 的环境中,它们在 docker-ized 版本的 Ubuntu 中运行,以设置环境ssh
(代理、密钥和配置),使运行器能够访问 git 存储库。
具体来说:
eval $(ssh-agent -s)
...这将启动ssh-agent
并配置正在运行的 shell 的环境(通过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 密钥添加到代理(上面已启动)。然后,该密钥将用于允许运行者获得对保存代码的 git 远程的 ssh 访问权限。
如果您真的想了解有关运行器如何工作的更多信息,我建议您使用man
ual 页面按顺序了解每个命令。