如果我通过中间服务器 scp 一个文件,该文件是否会暂时存储在服务器上?

如果我通过中间服务器 scp 一个文件,该文件是否会暂时存储在服务器上?

为了简单起见(我发现记住名字比记住任意字母更容易),我将省去字母并使用名称来指代这种场景中的机器。

假设我有两台机器,applejackpinkie-pie,每台机器都在各自的 LAN 上,并且不在同一物理位置。我还有一台服务器,,cadance它有直接面向互联网的连接。我想将文件从复制applejackpinkie-pie,因此为了避免处理端口转发等,我设置了一个从pinkie-piecadancessh -Rcadance)的 ssh 隧道。现在我可以从任何地方连接到pinkie-pie,只需连接到cadance并指定要使用的备用端口即可。我还可以轻松地使用将文件复制pinkie-piescp -P $that_port $some_file cadance:$some_path

我对其工作原理的理解是这样的:

  1. 建立安全applejack连接cadance
  2. 我已通过身份验证cadance
  3. applejack从到建立一个安全连接,该连接pinkie-pie跨越现有的反向隧道和步骤 1 中的新连接。
  4. 我已通过身份验证pinkie-pie
  5. 文件通过此连接直接从复制applejack到。pinkie-pie

我这样说对吗?这种方法安全吗?

如果我错了……这样复制的文件在cadance传递给 之前是否被解密pinkie-pie?未加密数据的痕迹有可能留在 上吗cadance

答案1

实际上,您的理解并不完全正确。如果我理解正确的话,您正在从 执行最后一个命令 ( scp -P $that_port $some_file cadance:$some_path) applejack。在这种情况下,您不是在向 进行身份验证cadance(步骤 2),而只是连接到 的反向隧道pinkie-pie

安全连接直接从applejack到;和pinkie-pie之间没有安全连接(步骤 1)。原则上能够读取通过反向隧道传输的明文,但该明文本身是另一个加密通道,因此必须打破它。applejackcadancecadance

applejack因此,您在和之间拥有一个端到端加密通道pinkie-pie,就像您直接连接它们一样。反向隧道只是一种路由流量的复杂方式。

答案2

任何类型的隧道中都会临时保存数据,因此数据可能会被拦截,但如果中间服务器拾取加密数据并将其发送出去,那么它就无法对数据做任何事情。所以,中间人确实会获得数据,否则他就不是中间人了。

相关内容