想象一下以下情况:
由于IP过滤限制,我没有直接SSH访问服务器A. 要使用putty访问服务器,我首先连接到Server-B,它有一个白名单的IP地址,然后从那里通过SSH连接到Server-C,然后从那里通过SSH连接到Server-A(我知道声音疯了,但不幸的是我没有权利改变IP过滤限制)。 有没有办法使用putty / winscp /其他任何东西从服务器A下载文件到我的本地PC?
使用端口转发。 例如,WinSCP可以select通过ssh隧道创build连接,并使用端口转发。 不过,既然你需要通过两跳,你不能使用它。
我会首先创build一个SSH连接到服务器B,它有一个隧道到服务器C。 你可以使用plink.exe作为这个(腻子的一部分):
plink.exe -l username_on_server_B -L 8888:server-C:22 server-B
现在你可以创build第二个隧道,使用ssh连接到server-B,这导致server-A(在第二个cmd.exe shell中):
plink.exe -l username_on_server_C -L 8889:server-A:22 -P 8888 localhost
在此之后,您应该能够使用WinSCP连接到服务器A. 而不是服务器A,您连接到本地主机端口8889,将通过隧道到服务器-A。
这是未经testing,但它应该工作,我认为。
最简单的方式没有链:
WinSCP支持SSH隧道。 要启用它:
您可以使用SSH隧道连锁其余的连接。 请参阅选项-L for openssh: ssh -L 1234:remote_host:22 user@intermediate_hop 。 然后你可以通过在intermediate_hop上使用localhost:1234来连接remote_host ssh。