Конвейер Bitbuket — как настроить ssh

Когда мой конвейер работает, я получаю следующие ошибки:

debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/config
debug1: key_load_private_type: incorrect passphrase supplied to decrypt private key
debug1: Next authentication method: password
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
lost connection

Это мой файл .yml:

image: maven:3.3.9

pipelines:
  default:
    - step:
        caches:
          - maven
        name: Build
        script: # Modify the commands below to build your repository.
          - echo "Build Start"
          - mvn package
          - echo $BUILD_DIR
          - mv target/**.jar target/transpoDirect.jar
        artifacts:
          - target/**.jar
    - step:
        name: Deploy
        image: maven:3.3.9
        script:
           - ls -la .
           - scp -i ~/.ssh/config -P 7822 -v -o StrictHostKeyChecking=no target/*.jar root@$hostName:/var/transpoDirect/.
           - ssh -p 7822 -i ~/.ssh/config -v -o StrictHostKeyChecking=no root@$hostName sudo service transpoDirect restart

Что я пробовал, так это изменить папку ~/.ssh и файлы на 777.

Переменная hostName задается в настройках репозиториев.

Перегенерировал ключ. Вставил в файл authorize_keys на удаленном сервере, но все равно получаю ту же ошибку

Расположение авторизованных_ключей:

введите здесь описание изображения

================================================================

Вот что работает:

  1. Удалены ключи SSH из конвейера битбакета.
  2. Сгенерировал ключ SSH на удаленном сервере с помощью: ssh-keygen
  3. Используется значение по умолчанию для приведенной выше команды, парольная фраза не устанавливается.
  4. Расположение по умолчанию, где генерируются ключи: /root/.ssh
  5. Папка .ssh скрыта. Используя winSCP, вы можете показать скрытые папки.
  6. Скопировал содержимое id_rsa.pub с удаленного сервера и вставил в SSH битбакета.
  7. Создал author_keys с содержимым id_rsa.pub внутри /root/.ssh
  8. Скопировал содержимое id_rsa с удаленного сервера и вставил в SSH битбакета.
  9. Это копирует банку на удаленный сервер:

    • scp -i /root/.ssh -4 -P 7822 -v -o StrictHostKeyChecking=no target/*.jar root@$hostName:/var/transpoDirect/.
  10. Это перезапускает службу, как описано здесь: https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html

    • ssh -4 -p 7822 -i /root/.ssh -v -o StrictHostKeyChecking=no root@$hostName sudo service transpoDirect restart

person Noman    schedule 11.01.2019    source источник


Ответы (2)


Вот что работает:

  1. Удалены ключи SSH из конвейера битбакета.
  2. Сгенерировал ключ SSH на удаленном сервере с помощью: ssh-keygen
  3. Используется значение по умолчанию для приведенной выше команды, парольная фраза не устанавливается.
  4. Расположение по умолчанию, где генерируются ключи: /root/.ssh
  5. Папка .ssh скрыта. Используя winSCP, вы можете показать скрытые папки.
  6. Скопировал содержимое id_rsa.pub с удаленного сервера и вставил в SSH битбакета.
  7. Создал author_keys с содержимым id_rsa.pub внутри /root/.ssh
  8. Скопировал содержимое id_rsa с удаленного сервера и вставил в SSH битбакета.
  9. Это копирует банку на удаленный сервер:

    scp -i /root/.ssh -4 -P 7822 -v -o StrictHostKeyChecking=no target/*.jar root@$hostName:/var/transpoDirect/.

  10. Это перезапускает службу, как описано здесь: https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html

    ssh -4 -p 7822 -i /root/.ssh -v -o StrictHostKeyChecking=no root@$hostName sudo service transpoDirect перезапуск


Дополнительные примечания: файл должен быть помещен в $HOME/.ssh/authorized_keys. Вы можете проверить, где находится $HOME, с помощью eval echo "$HOME". не для совместного использования, но id_rsa.pub является общедоступным файлом, и это файл, который нужно передать другому серверу.

person Noman    schedule 14.01.2019

Закрытый ключ, который вы используете с этим SSH-ключом, имеет парольную фразу, но вы нигде не указываете парольную фразу в своем YAML. Вы можете либо сгенерировать новый ключ для исключительного использования Pipelines, либо загрузить копию существующего ключа без кодовой фразы, либо вы можете использовать переменные среды для предоставления парольной фразы. .

person Jim Redmond    schedule 11.01.2019
comment
Я взял открытый ключ ключа из битбакета под ключами SSH. Я скопировал этот ключ и создал новый файл author_keys в ~/.ssh/authorized_keys. - person Noman; 11.01.2019
comment
Был ли этот закрытый ключ загружен в Pipelines или он был сгенерирован там? - person Jim Redmond; 11.01.2019
comment
Тогда предположим, что кто-то загрузил его с кодовой фразой. Вам нужно сгенерировать новый. - person Jim Redmond; 11.01.2019