我有一个部署过程可以完美地与我的计算机配合使用,我想在位桶管道中使用它。
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杀死。