Как исправить Отказано в разрешении (publickey, пароль) в gitlab Ci / CD? - PullRequest
0 голосов
/ 09 сентября 2018

У меня ниже простой скрипт в файле .gitlab-cl.yml:

build_deploy_stage:
  stage: build
  environment: Staging
  only:
    - master
  script:

    - mkdir -p ~/.ssh

    - echo "$PRIVATE_KEY" >> ~/.ssh/id_dsa
    - cat ~/.ssh/id_dsa
    - chmod 600 ~/.ssh/id_dsa
    - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
    - cat ~/.ssh/config
    - scp   myfile.js user@example.com:~

Но я получаю эту ошибку при выполнении задания, выполняющего последнюю строку (команда scp):

Warning: Permanently added 'example.com' (ECDSA) to the list of known hosts.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).

Я провел целый день, но не мог это исправить. Я проверил, что $ PRIVATE_KEY существует. Я сгенерировал пару ключей при входе в example.com, копируя сгенерированную приватную переменную в переменную PRIVATE_KEY на gitlab. Как решить эту проблему?

Обратите внимание, что это ключ dsa.

1 Ответ

0 голосов
/ 10 сентября 2018

Проверьте ваше разрешение для ~/.ssh (700) и всех файлов в них (600)

Например, ваш файл конфигурации может иметь слишком большие разрешения по умолчанию. Если вы можете активировать сеанс отладки в sshd удаленного сервера : вы увидите, принят ли ключ dsa (для последней версии sshd это может быть запрещено). RSA будет лучше.
Как видно из , OpenSSH 7.0 и выше больше не принимают ключи DSA по умолчанию.

OP ace подтверждает в комментариях :

Я исправил проблему, когда я регенерировал пары ключей tsa вместо ключей dsa

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...