【问题标题】:How to proxy net-sftp?如何代理 net-sftp?
【发布时间】:2019-09-29 01:50:09
【问题描述】:

我正在使用 net-sftp,它依赖于 net-ssh gem。

我正在尝试通过 SFTP 连接到远程日志服务,它需要 IP 白名单。我目前所有的服务器都有动态 IP。

我正在尝试在 Google Cloud 中设置静态、安全的代理服务器。我不太了解所有代理类型之间的所有差异,但 net-ssh 似乎支持...

  • 袜子4
  • 袜子5
  • '跳转'代理

我曾考虑使用 Dante 设置 socks5 代理,但只是通过它中继 SFTP 连接似乎有点矫枉过正,更不用说我认为它以纯文本形式发送密码。

如何以最简单的方式通过某些服务器代理 net-sftp?

【问题讨论】:

    标签: ruby ubuntu ssh net-ssh net-sftp


    【解决方案1】:

    最简单的方法是设置一个可以访问目标服务器的 Jump-host 服务器,然后通过让 Jump-host 服务器代理您的连接来连接到目标服务器。

    SSH 让它变得非常简单:

    ssh -J user@jump-host myuser@target-host

    在您的 .ssh/config 中,您可以执行以下操作:

    ### First jump-host. Directly reachable
    Host jump-host
      HostName jum-phost.example.org
    
    ### Host to jump to via jump-host.example.org
    Host target-host
      HostName target-host.example.org
      ProxyJump  jump-host
    

    这将允许您像往常一样使用 net-ssh。如果您不想更改配置文件,则必须 use 'net/ssh/proxy/jump':

    require 'net/ssh/proxy/jump'
    
    proxy = Net::SSH::Proxy::Jump.new('user@proxy')
    Net::SSH.start('host', 'user', :proxy => proxy) do |ssh|
      ...
    end 
    

    请参阅此article,了解有关 Jump Hosts 的更多信息。

    【讨论】:

    • 太棒了,这很有帮助。我有一个快速的问题......当我在等待这个问题得到回答时,我已经有了一个运行 Dante 的 socks5 服务器。您认为“跳转主机”更安全吗?我必须连接到这个日志服务,重点是我的 SFTP 可以有一个静态 IP。我已经根据这个serverfault.com/questions/986024/…配置了dante
    • 我认为他们是平等的。您也可以只考虑设置一个 VPN 隧道,而不必担心任何这些。 VPN 是一种更安全、更强大的方法。
    • 你认为 net-ssh 支持吗? VPN 隧道
    • 我想一个更好的问题是,我将如何开始研究如何做到这一点?许多谷歌搜索会产生一般的 VPN 浏览信息。
    • 对于初学者我推荐使用SoftEther VPN Tutorials。 Softether VPN 非常易于使用并支持多种协议。但是,如果您将本地数据中心连接到 Google Cloud,则应查看GCP VPN Interop Guides
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    相关资源
    最近更新 更多