使用身份文件通过隧道将 scp 文件传输到远程服务器

使用身份文件通过隧道将 scp 文件传输到远程服务器

我想使用中间隧道将文件从本地计算机复制到远程服务器。我尝试了几个建议的选项,但似乎都不起作用。

故障:本地机器

  • 要复制的文件名为 localfile.txt
  • 与中间机器的 ssh 连接已存在,并且正在通过 ControlPath/ControlMaster 重新使用

中介机

  • 用于登录目标服务器的身份位于 ~/.ssh/identityfileforremotemachine 中

远程机器

  • 目的地位于 /home/username/remotefile.txt

我感觉我快要成功了,但还缺少了一些东西

答案1

你没有说你尝试了什么命令,但是任何 openssh >= 7.3,以下命令几乎肯定会起作用,尽管你首先需要使用 拆除现有的控制主机ssh me@internediate -O exit

ssh -i .ssh/blahblah -J me@intermediate me@finaldestination

https://security.stackexchange.com/a/223005/88917对此进行一些解释-J

答案2

通过中间机器创建从本地机器到远程机器的隧道。本地机器将创建一个 SSH 会话,该会话将绑定从本地机器上的端口 2222 到远程机器上的端口 22 的 TCP 隧道。然后您可以通过隧道使用 ssh/scp 来实现复制。

  1. 设置隧道:从本地机器:

    ssh -L 2222:远程计算机:22 -N 用户@中间计算机

  2. 通过隧道复制

    a. 在本地机器上创建一个新的终端/选项卡/shell:

    scp -P 2222 localfile.txt remote_user@localhost:remotefile.txt
    

相关内容