the*_*kyi 5 amazon-ec2 gitlab gitlab-ci
我正在使用 GitLab 为我的 django 项目构建 CI/CD。作为部署阶段的一部分,我有
deploy:
stage: deploy
script:
- mkdir -p ~/.ssh
- echo "$PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
- cat ~/.ssh/id_rsa
- chmod 700 ~/.ssh/id_rsa
- eval "$(ssh-agent -s)"
- ssh-add ~/.ssh/id_rsa
- ssh-keyscan -H 'gitlab.com' >> ~/.ssh/known_hosts
- chmod +x ./deploy.sh
- scp -o StrictHostKeyChecking=no -r ./.env ./docker-compose.prod.yml ec2-user@$EC2_PUBLIC_IP_ADDRESS:/home/ec2-user/app
- bash ./deploy.sh
only:
- master
Run Code Online (Sandbox Code Playgroud)
构建失败,ssh-add ~/.ssh/id_rsa并显示错误消息Error loading key "/root/.ssh/id_rsa": invalid format。
我检查过有类似错误消息问题的人,但似乎没有一个与我正在做的事情相关。
我在 ##aws irc 频道的人员帮助下成功修复了该问题
问题
我生成了 PKCS#1 密钥格式而不是 PKCS#8 格式。PKCS#1 表示为:
-----BEGIN RSA PRIVATE KEY-----
BASE64 ENCODED DATA
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
PKCS#8 表示为:
-----BEGIN PRIVATE KEY-----
BASE64 ENCODED DATA
-----END PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
解决方案
我只是复制了私钥并在此处进行了转换https://decoder.link/rsa_converter
您还可以在这里看到更好的说明“BEGIN RSA PRIVATE KEY”和“BEGIN PRIVATE KEY”之间的差异
编辑 如下所示,使用网站进行转换不是一个好主意。特别是当您的私钥可能被发送到他们的服务器时。 相反,按照 @csgeek此处的指示在本地进行转换
| 归档时间: |
|
| 查看次数: |
12482 次 |
| 最近记录: |