通过ProxyCommand和网关通过SSH从bitbucket管道部署到服务器

时间:2018-10-30 14:59:39

标签: git ssh bitbucket-pipelines

我有一个部署过程可以完美地与我的计算机配合使用,我想在位桶管道中使用它。

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 2016年5月3日

     

debug1:读取配置数据/root/.ssh/config

     

debug1:读取配置数据/ etc / ssh / ssh_config

     

debug1:/ etc / ssh / ssh_config第19行:为*应用选项

     

debug1:连接到GATEWAY_HOST.com [GATEWAY_IP]端口   22。

     

调试1:建立连接。

     

调试1:永久设置的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类型   -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:匹配:OpenSSH_7.2p2 Ubuntu-4ubuntu2.4 pat OpenSSH * compat   0x04000000

     

调试1:发送了SSH2_MSG_KEXINIT

     

调试1:收到SSH2_MSG_KEXINIT

     

debug1:kex:服务器->客户端aes128-ctr umac-64-etm@openssh.com无

     

debug1:kex:客户端->服务器aes128-ctr umac-64-etm@openssh.com无

     

debug1:发送SSH2_MSG_KEX_ECDH_INIT

     

debug1:需要SSH2_MSG_KEX_ECDH_REPLY

     

debug1:服务器主机密钥:RSA   GATEWAY_FINGERPRINT

     

debug1:主机“ GATEWAY_HOST.com”已知并且与RSA匹配   主机密钥。

     

调试1:在/root/.ssh/known_hosts:3中找到密钥

     

警告:永久添加了IP地址的RSA主机密钥   'GATEWAY_IP'到已知主机列表。

     

调试1:发送了SSH2_MSG_NEWKEYS

     

debug1:需要SSH2_MSG_NEWKEYS

     

调试1:收到SSH2_MSG_NEWKEYS

     

调试1:发送了SSH2_MSG_SERVICE_REQUEST

     

调试1:收到SSH2_MSG_SERVICE_ACCEPT

     

debug1:可以继续的身份验证:publickey

     

debug1:下一个身份验证方法:publickey

     

调试1:尝试使用私钥:/root/.ssh/id_rsa

     

debug1:身份验证成功(公钥)。

     

已通过GATEWAY_HOST.com的认证([GATEWAY_IP]:22)。

     

debug1:channel_connect_stdio_fwd我的主机:22

     

debug1:频道0:新的[stdio-forward]

     

调试1:getpeername失败:错误的文件描述符

     

debug1:请求no-more-sessions@openssh.com

     

调试1:进入交互式会话。

     

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

      Host key verification failed.
     

debug1:通道0:空闲:direct-tcpip:监听我的主机的端口0   端口22,从127.0.0.1端口65535连接到UNKNOWN端口65536,   nchannels 1

     

debug1:fd 0清除O_NONBLOCK

     

debug1:fd 1清除O_NONBLOCK

     

调试1:被信号1杀死。

0 个答案:

没有答案