如果您通过 ssh 隧道 scp 文件,该文件是否会被加密两次?

问题描述 投票:0回答:2

背景信息: 服务器 A 需要向服务器 B 发送数据,但我不允许在它们之间的防火墙中打开任何其他端口。有一个ssh端口打开,所以我选择通过ssh隧道发送数据。但是,我现在也需要将文件从 A 复制到 B。

问题: 如果我通过现有的 ssh 隧道将文件从 A 传输到 B,这些文件是否会被加密两次?或者 scp 是否“足够聪明”来利用现有的隧道?

如果可能的话,我想避免加密两次的额外开销。

还有其他方法通过 ssh 隧道发送文件吗?

scp ssh-tunnel
2个回答
0
投票

不确定双重加密(我猜是的),但为什么使用

scp
而不是
ssh tunnel
scp
使用 ssh 连接,因此防火墙等没有问题。

如果您正在寻找替代方案,您可以使用

rsync
而不是
ssh
,如下所示:

rsync -avz -e ssh /home/me myname@servername:/some/folder

希望这有帮助。


0
投票

假设您有一个远程服务器 Remy。 Remy 有 sshd 服务,但所在网络无法路由新连接,但 Remy 仍然可以访问互联网。

假设您有另一个(可能是本地)服务器 Loco,Loco 可以在其中接收新的传入连接。

因此,Remy 配置为使用

ssh -R 2201:localhost:22 Loco
建立到 Loco 的 ssh 隧道,以便 Loco 可以通过 ssh 隧道 ssh 远程访问 Remy。

现在,在 Loco 中,如果您使用 scp 或 rsync 或任何其他实用程序,当从 Loco - PUSH 启动时,它将对该连接进行双重加密。这是加密两次(通过 sshtunnel ssh)

------ <-- ssh -R 2201:localhost:22 Loco ------
 ---------- ssh localhost:2201 --> -----------
  ====== file transfer PUSH >> ==============
 ---------------------------------------------
-----------------------------------------------

解决这个问题的一种方法是通过 Loco 远程进入 Remy,然后通过 scp/rsync/从 Remy 远程到 Loco 的公共互联网地址 - PULL。这将建立一个与 sshtunnel 分离的新 ssh 会话,其中连接仅加密一次。

------ <-- ssh -R 2201:localhost:22 Loco ------
 ---------- ssh localhost:2201 --> -----------
 ---------------------------------------------
-----------------------------------------------
-------------- <-- ssh Loco -------------------
  ====== file transfer PULL >> ==============
-----------------------------------------------

解决此问题的可能不太安全的方法是在 Remy 上拥有一个非加密(ftp)服务,该服务仅侦听本地主机,并将该端口包含在 sshtunnel 配置 `ssh -R 2201:localhost:22 -R 2101:localhost: 21 洛科'。然后在 Loco 上,您可以 ftp 到 localhost:2101,通过 sshtunnel 将文件发送到 Remy。

------ <-- ssh -R 2201:localhost:22 Loco ------
  ====== ftp file transfer >> ===============
-----------------------------------------------
© www.soinside.com 2019 - 2024. All rights reserved.