在本地网络中复制不加密 (ssh) 的文件

Man*_*d3r 26 command-line ftp ssh file-transfer smb

scp在所有情况下都能很好地工作,但是 Raspberry Pi 在安全环境 (lan) 中有效复制文件的能力很弱。通过 54 Mbit 无线局域网的理论上可能的 6.75 MB/s 缩小到大约 1.1 MB/s。

有没有办法在不加密的情况下远程复制文件?

它应该是一个 cli 命令,不依赖于额外的服务(ftp、samba)或至少具有最少的配置。我的意思是,一个标准工具,开箱即用,与标准程序/服务(如 scp/ssh)配合得很好。

YoM*_*smo 16

您可能正在寻找rcp,它通过执行远程执行,rsh因此您将不得不依赖它,并记住所有通信都是不安全的。


don*_*l24 14

您无法在 ssh/scp 上完全禁用加密,但您可以强制它使用较弱的密码,该密码对 cpu 的强度要低得多。确保未在 ssh_config 或命令行中打开压缩,并将其添加-c arcfour,blowfish-cbc到 scp 命令行以选择较弱的密码。

  • @ManuelSchneid3r:是的:在 ssh_config 中的“Host”部分下,使用“Ciphers arcfour,blowfish-cbc”来镜像上面的“-c”开关。但是,如果您的 CPU 支持 AES-NI 指令集,我会尝试切换到 `aes128-gcm@openssh.com`(是的,这是密码名称,包括 `@` 内容),它将使用极快的速度(使用 AES-NI)AES128-GCM。 (4认同)
  • 这是个好主意。这可能适用于主机特定的配置吗?(.ssh/配置) (2认同)

小智 13

我写了这个快速脚本:

#!/bin/bash

ssh "$1" "nc -l 2020 > \"$2\" &"
pv "$2" | nc "$1" 2020
Run Code Online (Sandbox Code Playgroud)

它需要两个参数,将其发送到的主机和您要发送的文件。它只适用于一个文件。它使用 sshnetcat在对端开始侦听,然后将netcat其发送到该侦听端口。我pv在开始时添加了一个很好的进度条。如果您没有或想要它,请替换pvcat。将 2020 端口更改为您喜欢的任何端口。这要求您具有对远程系统的 ssh 访问权限。

这是完全不安全的,但是,这就是您想要的。


Too*_*one 10

我认为 NFS 在这类任务中被低估了,在这种任务中,您需要便利、速度并且不关心安全性。NFS 的设置非常简单,尤其是在客户端上:请参阅此 ubuntu 简短指南以及较长的 ubuntu 社区帮助页面。从客户端的角度来看,您只需挂载服务器目录,它看起来就像一个本地驱动器,您可以使用cprsync或任何您想要的命令。


小智 5

Ben Collins 的上述 bash 脚本是一个很好的解决方案,但他缺少-p服务器端端口的标志。按原样运行它只会给你一个空文件或一个从不做任何事情的挂起服务器。

如果您只查看命令,就更容易看出这是做什么的。

DestinationShell# nc -l -p 2020 > file.txt

SourceShell# cat file.txt | nc dest.ip.address 2020
Run Code Online (Sandbox Code Playgroud)

nc或 netcat,就像 cat 一样,只是输出通过 TCP 连接回显到另一台机器上。您只是将服务器上 nc 的输出推送到目标文件中。您可以以相同的方式设置目的地,并echo foo | nc dest.ip.address 2020使用 nc执行和执行各种其他操作。