SSH到计算机,然后将SSH连接到另一台计算机

可能重复:
如何通过SSH隧道为SSH连接configuration快捷方式

我有一个情况,我想从我的工作站的SSH / SFTP访问不能直接从我的工作站访问的服务器。 我有ssh访问networking上的计算机,然后可以SSH到有问题的服务器。

我怎样才能做到这一点?

使用ProxyCommand sshconfigurationvariables。

Host inaccessible ProxyCommand ssh accessible nc -w1 %h %p 

这篇文章甚至解释了一种使用通用configuration的方法,所以ssh host1/host2自动为您跳转主机。

更新 :根据toppledwagon的评论修正了configuration代码段中的主机名。

当然,使用ssh隧道 。

你也可以这样:ssh -t remoteaccsbl ssh notremotelyaccsbl

我想这个答案可能是你在找什么:

如何通过SSH隧道为SSH连接configuration快捷方式

  1. 开放隧道:

    ssh -qTfnN -D 4040 -Clogin@远程访问主机

  2. 在cyberduck中使用4040端口在本地主机上设置SOCKS5

  3. 连接到您想要访问的计算机

    • q – 安静
    • T – 没有tty
    • f – 移到背景
    • N – 不执行远程命令
    • n – 将inputredirect到/ dev / null。

WinSCP直接支持通过SSH隧道连接。 也许其中一个MacOS客户端也提供这样的function?

如果SSH隧道对您不可用(它们可以在服务器端被禁用),那么您是否可以反转FTP连接?

如果您的本地机器可以通过SSH在可公开路由的IP地址上看到,那么无法访问的机器就可以看到外部世界

  1. SSH远程访问
  2. 从那里SSH到不可访问
  3. 从那里使用命令行SCP / SFTP客户端来获取本地文件系统上的文件

这可能不是你将能够很容易地自动化,所以如果你有可用的隧道使用该方法。

另一种解决scheme:使用socat的端口转发

在可访问的机器上,如果尚未安装,请安装socat ,并像这样运行它:

%socat tcp4-listen:1111,fork tcp4:不可访问:2222

这基本上是一个端口。 您连接到端口1111的可访问的机器,它将连接到不可访问的机器上的端口2222。 fork将保持socat为每个连接产生新的进程。

感谢所有的线索。 玩了几个选项后,下面的设置似乎是最简单的:

  • 下载了一个非常好的程序调用SSHTunnel(强烈推荐)
  • 在SSHTunnel的服务器部分设置我的已知主机
  • 在服务部分设置我想要的端口
  • 绿灯亮起让我知道隧道已经到了
  • 使用SFTP客户端(Cyber​​duck或Fugu)使用SSHTunnel服务中设置的本地端口连接到127.0.0.1