我在GitLab ci/cd管道上工作,应该将docker容器部署到AWS ec2实例。我正试图实现这里描述的方法,我的一项工作失败了,因为ssh-keyscan <ip>
不起作用。我的管道看起来像这样:
...
deploy-to-staging:
image: docker:20.10.14
stage: deploy to staging
needs: ["docker-stuff"]
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan $EC2_IP >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
...
在- ssh-keyscan $EC2_IP >> ~/.ssh/known_hosts
线与ERROR: Job failed: exit code 1
线处失效
我的GitLab变量:
- SSH_PRIVATE_KEY - EC2密钥对私钥。pem格式
- EC2_IP - Public IPv4 DNS
我在本地尝试了ssh-keyscan <ipv4 DNS or IP>
并且它有效。我也在单独的ubuntu ec2实例上尝试过,没有输出。
如有任何帮助,不胜感激。
解决。我有错误的出站规则在法律安全组。我把SSH IP改为0.0.0.0/0,它已经工作了。