我有三台 Linux 机器,连接如下:
Linux_machine1 --> Route_linux_machine --> Linux_machine2
如何仅通过 Route_linux_machine 从 Linux_machine1 ssh 到 Linux_machine2
就像 Route_linux_machine 是通往 Linux_machine2 的路线
答案1
这取决于是什么Route_linux_machine
。
Route_linux_machine
是一个路由器
如果它只是一个路由器(意味着那里没有 SSH 服务/帐户):那么您应该添加一些iptables
规则来重定向网络流量。例如,类似:
iptables -t nat -A PREROUTING -d linux_machine2_alias \
-p TCP --dport 22 -j DNAT --to-destination linux_machine2:22
(其中linux_machine2_alias
是另一个 IP 地址,属于route_linux_machine
)然后,从您的计算机,您必须通过 SSH 连接到linux_machine2_alias
(实际上是路由器),后者会将其重定向到linux_machine2
。
Route_linux_machine
是一个 SSH 网关
如果您在 上有 SSH 帐户Route_linux_machine
,则可以建立 SSH 隧道。
ssh user@route_linux_machine -L2222:linux_machine2:22
linux_machine2
然后,你自己机器的2222端口就会被重定向到via的22端口route_linux_machine
。你只需要做:
ssh user@localhost -p 2222
虽然看起来您正在连接到自己的计算机 ( localhost
),但实际上您将被重定向到linux_machine2
。
作为替代方案,如果您不想使用隧道,可以使用嵌套ssh
命令:
ssh -t -A user@route_linux_machine ssh user@linux_machine2
它将首先提示您输入route_linux_machine
密码,然后再提示linux_machine2
您输入密码。