我想使用中间隧道将文件从本地计算机复制到远程服务器。我尝试了几个建议的选项,但似乎都不起作用。
故障:本地机器
- 要复制的文件名为 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 来实现复制。
设置隧道:从本地机器:
ssh -L 2222:远程计算机:22 -N 用户@中间计算机
通过隧道复制
a. 在本地机器上创建一个新的终端/选项卡/shell:
scp -P 2222 localfile.txt remote_user@localhost:remotefile.txt