我有以下.gitlab-ci.yml
文件,旨在通过将我的主 GitLab 存储库克隆到test
特定服务器上的目录来部署它。
image: ubuntu:latest
before_script:
- apt-get install -y
- apt-get update -y
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y && apt-get install git -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null ## /dev/null = trou noir
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan charrier.alwaysdata.net >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
deploy:
script:
- ssh -o StrictHostKeyChecking=no -vT [email protected] "cd test && git clone [email protected]:repo_group/repo.git"
only:
- master
这是在登录时生成的$SSH_PRIVATE_KEY
私钥,我正在尝试克隆我的存储库。user_name
xxx.xx.xxx.xxx
运行时ci
,我收到此错误:
[email protected]: Permission denied (publickey).
ERROR: Job failed: exit code 1
我显然搞砸了ssh
,但我很困惑到底是我的问题。我松散地遵循本指南。
你能帮我找出我的错误吗?
原因是因为我没有做两件事:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
GitLab
配置文件的公钥中。这是通过复制内容cat ~/.ssh/id_rsa.pub
并将其粘贴到https://yourgitlabwebsite.com/profile/keys