通过带有 stdin/stdout 转发功能的跳转服务器建立到 GIT 的 SSH 连接

通过带有 stdin/stdout 转发功能的跳转服务器建立到 GIT 的 SSH 连接

通过带有 stdin/stdout 转发的跳转服务器与 GIT 建立 SSH 连接我正在尝试使用中间跳转服务器 (B) 建立从客户端服务器 (A) 到远程服务器 (C) 的连接,该服务器应该隐藏该连接的私有 ssh 密钥。

服务器 A 需要通过 ssh 访问某些资源(git),无需任何密码/ppk 身份验证:

$ git clone ssh://git@serverB:portB/some/repository.git -vvv

服务器 B 是一个容器化应用程序(docker 容器),其EXPOSE portBCMD 如下:

$ ssh \
    -v \
    -o StrictHostKeyChecking=no \
    -o ForwardAgent=yes \
    -o TCPKeepAlive=yes \
    -o ConnectTimeout=5 \
    -o ServerAliveCountMax=10 \
    -o ServerAliveInterval=15 \
    -i /root/ssh-import/id_rsa \
    -p $SSH_TUNNEL_PORT \
    -L $LOCAL_HOST:$LOCAL_PORT:$REMOTE_HOST:$REMOTE_PORT \
    $SSH_TUNNEL_USER@$SSH_TUNNEL_HOST \
    -N

此配置不是 stdin/stdout 转发的代理,而是使用 ssh 隧道的端口转发。还尝试了-W-J-o ProxyCommand,但最终出现以下错误:

$ ssh -i ./ed25519_ppk -W serverC:portC -p portB userB@serverB
... (after a connection attempt)
kex_exchange_identification: Connection closed by remote host

我该如何组织我的 CMD 和跳转服务器(B)配置来建立从服务器 A 到 C 的无密钥 ssh 连接?

相关内容