我正在运行 Debian stable,我希望为我的 'sftponly' 组中的用户建立以下环境:
从我的实验和研究来看,sshd_config 中的以下节似乎让我达到了 90%:
Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
这给了我监禁的 SFTP 而没有 SSH,这很好。但它也禁用了 SCP,这不太理想,因为很多客户端是使用 SCP 而不是 SFTP 的遗留脚本进程(我们正在替换的服务器支持这两种协议),并且因为这些客户端不受我们的控制并且很容易修改后,完全禁用 SCP 可能不切实际。
此配置将禁用 SCP 是有道理的,因为传入的 SCP 连接会导致 sshd 以该用户的身份通过用户的登录 shell 生成一个“scp”进程。如果不是特殊的“internal-sftp”处理程序,SFTP 似乎通常也是如此。
所以,我想我的问题是:有没有一种方法可以达到与“internal-sftp”相同的效果,但对于 SCP,而不使用像 scponly 和 rssh 这样的第三方工具?'internal-sftp' 的真正好处在于它不需要用支持文件设置监狱,或处理可能被利用的第三方 setuid 二进制文件(特别是 rssh,它有被利用的历史)。
当文件通过 SSH 传输正常时,为什么要考虑在服务器上设置 FTP 服务(在 Lunux 上使用 Midnight Commander,在 Windows 客户端上使用 FileZilla)?两者的优缺点是什么?除此之外,不同的客户端更广泛地支持 tat FTP。
我正在尝试通过命令备份文件
scp /tmp/backup.tar.gz 主机名:/home/user/backup.tar.gz
当我运行它时,scp 进度条出现,看起来像是在传输文件,但是当我登录目标服务器检查文件时,时间戳和文件大小与旧版本相比没有改变,所以看起来像scp 根本没有覆盖旧文件。只有当我从目标服务器手动删除文件时,它才会起作用。
我正在运行 ubuntu,这发生在两台服务器上:一台 cygwin ssh,一台 fedora core 3。
任何人都知道为什么会这样?我以为 scp 只会覆盖现有文件..
谢谢
我需要将一个 20 GB 的KVM虚拟磁盘文件(存储 CentOS 6.5 VM 的根文件系统)从一台实验室服务器传输到另一台。大文件大小以及我曾经将这样的虚拟磁盘文件压缩到几百兆字节的事实使我本能地启用了压缩,scp但我惊讶地发现传输速度相当低。然后我试图bzip2结合ssh和cat与大吃一惊。以下是方法和平均吞吐量的摘要。
scp -C vm1-root.img root@192.168.161.62:/mnt/vdisks/, 11 MB/秒。 bzip2 -c vm1-root.img | ssh -l root 192.168.161.62 "bzip2 -d -c > /mnt/vdisks/vm1-root.img", 5 MB/秒。这个更低的结果促使在网上搜索。scp -c arcfour -C vm1-root.img root@192.168.161.62:/mnt/vdisks/, 13 MB/秒。-c arcfour在有关 serverfault 的一个答案中建议使用as 。它几乎没有帮助。最后,我禁用了压缩。scp vm1-root.img root@192.168.161.62:/mnt/vdisks/, 23 MB/秒。 压缩不应该更快吗?
编辑:我不知道为什么这个问题被否决了。我想在这里可以学到一些东西。
ssh(1)从@sven收到手册页提示后,我尝试了几种不涉及压缩的文件传输替代方法,两者都取得了更好的结果。
cat vm1-root.img | ssh -l root 192.168.161.62 "cat > /mnt/vdisks/vm1-root.img", 26 …
我有一系列文件需要每晚通过 VPN 通过 SCP 复制到远程 linux 服务器。文件并不大,我们在这里谈论的是几十兆字节,但文件复制几乎总是在几秒钟后停止。使用 -vvv 运行 SCP 命令,我在整个尝试复制过程中一遍又一遍地看到以下内容:
debug2: channel 0: rcvd adjust 131072
debug2: channel 0: rcvd adjust 131072
debug2: channel 0: rcvd adjust 131072
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?我看到这个问题在不同的地方被问到,但从来没有任何答案。任何帮助,将不胜感激。
我有两台通过 1 Gbit LAN 连接的 Debian Linux 机器。我可以使用原始 HTTP 文件传输来衡量这一点,wget它在任一方向上的传输速度约为 100MB/s。
当我现在使用 时scp,我得到的最大无压缩约为15MB/s。-C根据内容,使用该标志启用压缩可让我达到高达50MB/s 的速度。
尽管如此,这里似乎浪费了很多带宽。很长一段时间我都没有打扰,直到我真的不得不考虑一些非常大的日志文件传输,才意识到它scp是多么的慢。scp即使在公司环境中,我也很自然地使用,因为所有基础设施都是为它设置的。
是什么限制了 scp 的性能?由于加密,它是否受 CPU 限制?当我使用htop它时,它似乎没有使用多核 CPU,只有四个 CPU 中的一个达到了最大值。
有没有办法提高吞吐量?我有 HTTP 服务器和 samba 可用,但为了在 Linux 机器之间移动文件,我通常只使用 SSH,这就是我成长的方式。但这现在让我想到了,似乎我需要考虑其他大量数据的传输方式。
HTTP 仅用于 PHP/Java/whatever 中的特定应用程序,而 samba 用于某些特殊原因,我们需要从 Windows 机器访问。
可能的重复:
在 Windows 上使用什么是好的 SSH 服务器?
SF 社区中的任何人都可以推荐一个值得信赖/易于设置的 Windows SCP 服务器。我不想经历设置 Cygwin 的麻烦,但我需要在 Windows 上运行 SCP。
总而言之,我们的网络具有非常高的防火墙,并且 SSH 端口仅允许通过使用 Linux/Unix 端的 RSA 密钥的双因素身份验证的跳转服务器,并且默认情况下会阻止 FTP。
无需为数十个 SAN 交换机请求防火墙规则来进行固件升级,我希望在基于 Windows 的主 DCFM 服务器上运行一个 SCP 服务器,以允许我使用我的中央存储库执行 SAN 交换机固件升级,但没有必须到处请求 FTP 访问。
有任何想法吗?
我经常使用 SCP 在服务器之间移动文件,我听说如果你使用公钥,你可以在远程服务器上使用制表符完成,但到目前为止我没有运气。
我想要完成的是以下内容:
scp -r remote.ip.address:/remote/dir/folder<TAB> /local/destiation/
Run Code Online (Sandbox Code Playgroud)
一个ls远程服务器上/dir/会显示3个文件夹:
/remote/dir/folder_1
/remote/dir/folder_2
/remote/dir/folder_3
Run Code Online (Sandbox Code Playgroud)
我希望 SCP 显示哪些文件夹匹配(如果有),就像导航本地文件系统时的正常路径完成一样。Tab 补全确实适用于scp命令行中的本地路径,但我注意到当远程机器的路径与本地路径匹配时(即:“~/”),它会从本地文件系统中完成/建议文件/文件夹,而不是比遥控器。
运行以下适用于无密码登录:
`ssh remote.ip.address`
Run Code Online (Sandbox Code Playgroud)
...所以我知道密钥设置正确。关于如何让这个工作的任何想法?
几年前我曾与一位 linux 专家合作,他做了这个绝妙的把戏。他可以执行mysqldump 但将输出重定向到 scp/ssh 连接而不是写入磁盘。我们在我以前工作的地方稍微利用了这种安静,但我不记得如何做到这一点了。
我现在面临的问题是我的服务器中的硬盘驱动器处于最后阶段,并且出于密集目的,永久安装为只读。
我希望利用这个命令行技巧仍然能够将我的数据库备份到新服务器上,因为将转储写入本地磁盘并传输它显然是不可能的。
这实际上是一个小技巧吗?如果是这样,语法是什么?
我已经意识到由于只读文件系统问题,我什至无法连接到 mysql 进行转储。但是您的反馈很棒,希望将来对其他人有用
我有 1 个源服务器,其中包含我想复制到其他 7 个服务器的大约 30GB 的文件。我目前将文件 SCP 转移到前四台服务器,并在传输完成后将 SCP 转移到最后 3 台服务器。
使用 BitTorrent 将文件一次分发给所有 7 个人会更快吗?每个服务器之间的内部连接已经快速且一致。我知道这可能会减轻源服务器的一些负担,但是分发文件是否需要更长的时间?
我可以从 shell 使用什么好的脚本化客户端?我希望每个人都在 100% 后停止播种。