【问题标题】:Is there a way to make an SFTP connection to a remote machine through jump server to transfer files?有没有办法通过跳转服务器与远程机器建立 SFTP 连接来传输文件?
【发布时间】:2022-01-13 02:02:24
【问题描述】:

我想知道是否有一种方法可以通过跳转服务器使用 SFTP 将文件发送到远程机器。 正如您在下图中看到的,首先需要一个 SSH 连接,然后是一个 SFTP 连接。

我的主要问题出现在 SSH 连接之后,我的工作空间发生了变化,我无法检索成功执行 SFTP 所需的文件。 我试过以下代码:

ssh jump-server-user@ip-jump-server 'echo "put /source/files /remote/files" | sftp -v remote-machine-user@ip-remote-machine'

但它不起作用。

我尝试使用 SFTP 连接执行一个简单的命令,例如 pwd,它可以工作,所以我认为这里的问题是工作空间如何变化。

可能会有更简单的解决方案,但我无法在跳转服务器-远程机器连接上使用 SSH,并且我无法将本地文件存储在跳转服务器中以便稍后将它们发送到远程机器。

【问题讨论】:

    标签: ssh sftp sendfile


    【解决方案1】:

    如果你有一个最近的 OpenSSH (8.0)本地,你可以使用-J (jump) switch:

    sftp -J jump-server-user@ip-jump-server remote-machine-user@ip-remote-machine
    

    对于旧版本(但至少为 7.3),您可以使用ProxyJump directive

    sftp -o ProxyJump=jump-server-user@ip-jump-server remote-machine-user@ip-remote-machine
    

    还有其他选项,例如 ProxyCommand 或端口转发,您甚至可以在更旧版本的 OpenSSH 上使用它们。这些都包含在Does OpenSSH support multihop login?

    【讨论】:

    • 我有更高版本的 OpenSSH 8.0,第一个选项对我有用,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2018-02-28
    • 2019-06-25
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 2013-10-17
    相关资源
    最近更新 更多