我正在尝试找出如何ssh跳转到堡垒主机后面的主机 该连接是一个Unix套接字。
主机A
通过ssh连接到堡垒,并建立一个反向隧道,使其返回到自己的sshd
:
ssh -R /var/run/A.sock:localhost:22 bastion
在bastion
上,我可以使用以下ssh配置连接到A
Host A
ProxyCommand socat - UNIX-CLIENT:/var/run/A.sock
现在我想通过B
从A
连接到bastion
,例如
ssh -J bastion A
我对这样连接到A
之后的主机特别感兴趣:
ssh -L 80:1.2.3.4:80 -J bastion A
这似乎不起作用,因为ssh无法评估~/.ssh/config
bastion
和A
上的主机名无效。
以下方法可行,但存在创建两个隧道的缺点 和临时端口
ssh -tt bastion ssh -tt A
ssh -L 80:localhost:8000 -tt bastion ssh -L 8000:1.2.3.4:80 -tt A
有人有更好的方法吗?我将如何在~/.ssh/config
中进行配置?
B
上的以下ssh配置似乎有效:
Host A
HostName bastion
RequestTTY force
ForwardAgent yes
RemoteCommand ssh -tt A
但是,ssh -L 80:1.2.3.4:80 A
并没有使用此配置建立端到端隧道。