我有一个可以通过中间服务器访问的目标服务器,并且我想要一个从我的本地主机到目标服务器的终端,通过中间服务器。
无需在我的本地主机中打开端口。
答案1
您可以指定在建立 ssh 连接后立即在远程主机中执行的命令。因此,您可以打开与中间主机的连接,然后将另一个 ssh 连接链接到目标服务器。请记住,链接的命令将执行在远程主机上。如果某些 IP 地址由本地网络、NAT 后面等设置,这一点尤其重要。如果您需要更多跳数,则可以构建更长的链。
ssh -A -t -p middle-port middle-user@middle-server ssh -A -p target-port target-user@target-server
如果您需要在某些跳转中使用证书(比如,到达中间服务器),则应在链的第一级插入 -i 参数。如果是这种情况,系统可能会提示您输入密码:
ssh -i ~/mykey.pem -A -t -p middle-port middle-user@middle-server ssh -A -p target-port target-user@target-server