Ошибка загрузки ключа "/root/.ssh/id_rsa": недопустимый формат - PullRequest
1 голос
/ 26 мая 2020

Я создаю CI / CD для своего проекта django с помощью GitLab. На этапе развертывания у меня есть

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

Сборка прерывается на ssh-add ~/.ssh/id_rsa с сообщением об ошибке Error loading key "/root/.ssh/id_rsa": invalid format.

Я проверял людей с вопросами с похожими сообщениями об ошибках, и ни один из них не имеет отношения к тому, что я делаю.

Примечания

  1. Я пытаюсь развернуть на amazon ec2
  2. Я следую этому руководству https://testdriven.io/blog/deploying-django-to-ec2-with-docker-and-gitlab/, и, похоже, все работает нормально до этой последней точки.

1 Ответ

1 голос
/ 30 мая 2020

Мне удалось исправить это с помощью парней из канала ## aws ir c

Проблема

Я сгенерировал PKCS # 1 вместо формата PKCS # 8. PKCS # 1 представлен как:

-----BEGIN RSA PRIVATE KEY-----
BASE64 ENCODED DATA
-----END RSA PRIVATE KEY-----

PKCS # 8 представлен как:

-----BEGIN PRIVATE KEY-----
BASE64 ENCODED DATA
-----END PRIVATE KEY-----

Решение

Я просто скопировал ЧАСТНЫЙ КЛЮЧ и преобразовал его здесь https://decoder.link/rsa_converter

Здесь вы также можете увидеть более подробное объяснение Различия между «НАЧАТЬ ЧАСТНЫЙ КЛЮЧ RSA» и «НАЧАТЬ ЧАСТНЫЙ КЛЮЧ»

...