【发布时间】:2021-04-13 13:16:13
【问题描述】:
我正在尝试在我的 GitLab CI 管道中设置一个阶段,签出一个私有 GitLab 存储库,但我似乎无法让 SSH 身份验证工作。
在我的本地机器上,我创建了一个 SSH 私钥/公钥对。我使用本地计算机仅用于创建该密钥对,而不是将其用作服务器/GitLab 运行器。
我已将公钥作为部署密钥添加到我的 GitLab 存储库中。我将私钥作为一个名为$GIT_SSH_PRIV_KEY 的受保护变量。
下面的代码处于一个阶段,我现在只是在测试ssh -T git@gitlab.com 是否可以正确验证。
stage: git_merge
before_script:
- apt-get update -qq
- apt-get install openssh-client -qq
- eval $(ssh-agent -s)
- echo "$GIT_SSH_PRIV_KEY" | tr -d '\r' | ssh-add - > /dev/null
# - ssh-add <(echo "$GIT_SSH_PRIV_KEY")
- mkdir -p ~/.ssh && touch ~/.ssh/known_hosts
- echo $"SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
script:
- ssh -T git@gitlab.com
我在管道中收到的错误是Host Key verification failed,所以我不确定我的问题目前在哪里。
【问题讨论】:
-
- echo $"SSH_KNOWN_HOSTS"$ 和"的顺序错误。
标签: ssh gitlab gitlab-ci gitlab-ci-runner ssh-keys