NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
ZH

Linux 命令和 Shell 技能

sftp:基于 SSH 预算的文件传输

sftp 位于 SSH 内部,这正是它比同类产品寿命更长的原因:密钥、chroot、跳转主机和审计跟踪都是免费的。 OpenSSH 在 9.0 版本中悄悄地将 scp 转移到 SFTP 协议上,因为 SFTP 扮演着真正的协议角色:目录列表、mkdir、权限、重命名以及更少的协议意外。交互式 sftp 适合一次性移动;自动化通过批处理模式、退出代码和偶尔向 rsync 道歉来运行。

要点

  1. 自动化是批处理模式: sftp -b batch.txt user@host 运行命令文件,在任何失败时退出非零,并使用 -b - 从标准输入读取;无人值守的密码提示是错误批处理模式删除速度的两倍,它增加了安全性。
  2. 故意设置的命令集很小:会话内的 ls -l、mkdir、put -p(保留时间戳)、get -r(递归)、chmod 和 df -h 覆盖了 95% 的操作需求。
  3. 了解 rsync 何时获胜:sftp 重新发送整个文件,而 rsync -avz --partial over ssh 移动增量,默默地修剪任何内容,并保留批量存档实际关心的元数据。
  4. 服务器端,sftp 是一个栅栏:在具有 ChrootDirectory 的 Match 块内的 ForceCommand 内部 sftp 将帐户变成一个加密的、经过审核的、根本没有 shell 的保管箱。
  5. “sftp 可以工作,shell 不行”是设计,而不是错误:子系统 sftp 内部 sftp 行是启用它的原因,而 scp 在 OpenSSH 9.0 中转移到 SFTP 意味着没有子系统的旧服务器可能会破坏旧的 scp 作业。
  6. Cron 使用是根据故障行为来判断的:-o BatchMode=yes、-o ConnectTimeout=10,并且显式退出代码检查将无声挂起转变为响亮的可分页故障。
  7. 进度输出是噪音控制:sftp 很吵闹,cron 日志很安静; -q(或重定向)加上 sshd 端的日志记录为您提供了不会腐烂成千兆字节传输条的审计跟踪。
  8. 职业构成的一个拼写错误:sftp -P 2222 采用大写 P(小写 -p 表示保留),而 scp 交换了相同字母的约定;端口错误时,先检查大小写。

一线手记

一个 cron sftp 作业曾经因意外的密码提示而挂起六个小时,直到有人注意到。此后的每个脚本传输都会获取 -b、-o BatchMode=yes 和退出代码检查分页而不是等待。

常见问题

OpenSSH 9.0真的改变了scp吗?

协议,而不是表面:scp 现在通过底层的 SFTP 移动文件,因此没有 sftp 子系统的主机会默默地破坏旧的 scp 作业;修复方法是启用子系统,而不是恢复习惯。

我可以在没有 sftp 的情况下移动单个文件吗?

是:cat bigfile.bin | ssh user@host 'cat > /tmp/bigfile.bin' 是便携式单管道传输;没有简历,没有元数据,但它可以在 SSH 工作的任何地方工作,这正是它的用例。

sftp 比 scp 或 rsync 慢吗?

有时:每个文件的协议开销和默认缓冲显示在批量目录树中;在优化之前测量您的链接,并记住 rsync 通常会在投诉“太慢”时做出回应。

如何在没有 shell 访问权限的情况下向第三方提供上传?

具有 ChrootDirectory、ForceCommand 内部 sftp 和可写子目录的专用帐户;包括密钥、监狱、超时和日志审查,这是一个投递箱而不是邀请。

Kinetikatech 如何在linux 命令和 shell 技能方面为您提供帮助

这类问题我们已处理过数百次:决定管理员是操作服务器还是对抗服务器的命令和脚本编写习惯:使用每个基本安装中的工具搜索、转换、传输和监督文本和进程。通过Linux 服务器安全和服务器管理,您将获得完整闭环:我们评估、实施、全天候值守,并在关键时刻 30 分钟内响应。

与工程师交谈

服务器问题?网站被黑?网站缓慢?

严重问题 30 分钟内响应 — 每天 24 小时,每周 7 天。

请求紧急支持 support@kinetikatech.com