Развертывание с конвейеров bitbucket на сервер через SSH с ProxyCommand и шлюзом - PullRequest
0 голосов
/ 30 октября 2018

У меня есть процесс развертывания, отлично работающий с моим компьютером, который я хотел бы использовать в конвейерах с битбакетом.

Файл SSH Config определяет соединение:

Host my-host
    User my-user
    Hostname my-host-name
    IdentityFile ~/.ssh/id_rsa
    ProxyCommand ssh -v -i ~/.ssh/id_rsa -W %h:%p my-user@my-gateway.com

Мой id_rsa.pub находится в обоих .ssh/authorized_keys файлах.

Соединение SSH работает как шарм.

Я генерирую пару ключей SSH для конвейеров битового сегмента и помещаю их в те же .ssh/authorized_keys.

Вот мой конвейер для тестирования соединения ssh:

image: node:8.11.2    
pipelines:
  branches:
    stage/development:
      - step:
          caches:
            - node
          script:
          - mkdir -p ~/.ssh
          - (umask  077 ; echo $DEV_PIPELINE_KEY | base64 --decode > ~/.ssh/id_rsa)
          - cat bitbucket-ssh-config >> ~/.ssh/config
          - ssh my-host

$DEV_PIPELINE_KEY представляет мой закрытый ключ, хранящийся в bitbucket. Файл bitbucket-ssh-config такой же, как и выше.

Это успешно в шлюзе SSH-соединения, но затем это не удается, и я не понимаю, почему Вот журналы:

Псевдо-терминал не будет выделен, потому что stdin не является терминалом.

OpenSSH_6.7p1 Debian-5 + deb8u4, OpenSSL 1.0.1t 3 мая 2016 года

debug1: чтение данных конфигурации /root/.ssh/config

debug1: чтение данных конфигурации / etc / ssh / ssh_config

debug1: / etc / ssh / ssh_config строка 19: применение параметров для *

debug1: подключение к порту GATEWAY_HOST.com [GATEWAY_IP] 22.

debug1: соединение установлено.

debug1: постоянно_set_uid: 0/0

debug1: key_load_public: такого файла или каталога нет

debug1: файл идентификации /root/.ssh/id_rsa тип -1

debug1: key_load_public: нет такого файла или каталога

debug1: файл идентификации /root/.ssh/id_rsa-cert тип -1

debug1: key_load_public: нет такого файла или каталога

debug1: идентификационный файл / opt / atlassian / pipelines / agent / ssh / id_rsa type -1 * * тысяча пятьдесят один

debug1: key_load_public: нет такого файла или каталога

debug1: файл идентификации / opt / atlassian / pipelines / agent / ssh / id_rsa-cert тип -1

debug1: включение режима совместимости для протокола 2.0

debug1: строка локальной версии SSH-2.0-OpenSSH_6.7p1 Debian-5 + deb8u4

debug1: версия удаленного протокола 2.0, версия удаленного программного обеспечения OpenSSH_7.2p2 Ubuntu-4ubuntu2.4

debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.4 pat OpenSSH * compat 0x04000000

debug1: SSH2_MSG_KEXINIT отправлено

debug1: SSH2_MSG_KEXINIT получено

debug1: kex: сервер-> клиент aes128-ctr umac-64-etm@openssh.com none

debug1: kex: клиент-> сервер aes128-ctr umac-64-etm@openssh.com none

debug1: отправка SSH2_MSG_KEX_ECDH_INIT

debug1: ожидается SSH2_MSG_KEX_ECDH_REPLY

debug1: ключ хоста сервера: RSA GATEWAY_FINGERPRINT

debug1: хост 'GATEWAY_HOST.com' известен и соответствует RSA ключ хоста.

debug1: найден ключ в /root/.ssh/known_hosts:3

Предупреждение. Постоянно добавлен ключ хоста RSA для IP-адреса. 'GATEWAY_IP' к списку известных хостов.

debug1: отправлено сообщение SSH2_MSG_NEWKEYS

debug1: ожидается SSH2_MSG_NEWKEYS

debug1: SSH2_MSG_NEWKEYS получено

debug1: SSH2_MSG_SERVICE_REQUEST отправлено

debug1: SSH2_MSG_SERVICE_ACCEPT получено

debug1: аутентификации, которые могут продолжаться: publickey

debug1: следующий метод аутентификации: publickey

debug1: пробуем закрытый ключ: /root/.ssh/id_rsa

debug1: аутентификация прошла успешно (publickey).

Аутентифицирован на GATEWAY_HOST.com ([GATEWAY_IP]: 22).

debug1: channel_connect_stdio_fwd my-host: 22 * ​​1105 *

debug1: канал 0: новый [stdio-forward]

debug1: ошибка getpeername: неправильный дескриптор файла

debug1: Запрос no-more-sessions@openssh.com

debug1: вход в интерактивный сеанс.

debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0

      Host key verification failed.

debug1: канал 0: свободный: direct-tcpip: порт прослушивания 0 для my-host порт 22, подключиться от 127.0.0.1 порт 65535 к НЕИЗВЕСТНОМУ порту 65536, каналы 1

debug1: очистка fd 0 O_NONBLOCK

debug1: очистка fd 1 O_NONBLOCK

debug1: убит по сигналу 1.

...