Sftp

名称:
   singularity 存储 更新 sftp - SSH/SFTP

用法:
   singularity 存储 更新 sftp [命令选项] <名称|ID>

说明:
   --host
      SSH 主机名称。
      
      例如:"example.com"。

   --user
      SSH 用户名。

   --port
      SSH 端口号。

   --pass
      SSH 密码,留空以使用 SSH 代理。

   --key-pem
      原始的 PEM 编码私钥。
      
      如果指定了此参数,则会覆盖 key_file 参数。

   --key-file
      PEM 编码私钥文件的路径。
      
      留空或将 key_use_agent 设置为使用 SSH 代理。
      
      文件名中的 `~` 字符会扩展为绝对路径,环境变量如 `${RCLONE_CONFIG_DIR}` 也会被扩展。

   --key-file-pass
      解密 PEM 编码私钥文件所需的密码。
      
      仅支持 PEM 密码保护的私钥文件(旧的 OpenSSH 格式)。新的 OpenSSH 格式的加密密钥无法使用。

   --pubkey-file
      可选的公钥文件路径。
      
      如果要使用已签名的证书进行身份验证,则设置此参数。
      
      文件名中的 `~` 字符会扩展为绝对路径,环境变量如 `${RCLONE_CONFIG_DIR}` 也会被扩展。

   --known-hosts-file
      可选的已知主机文件路径。
      
      设置该值以启用服务器主机密钥验证。
      
      文件名中的 `~` 字符会扩展为绝对路径,环境变量如 `${RCLONE_CONFIG_DIR}` 也会被扩展。

      示例:
         | ~/.ssh/known_hosts | 使用 OpenSSH 的已知主机文件。

   --key-use-agent
      当设置时,强制使用 ssh 代理。
      
      当同时设置了 key-file 时,将读取指定密钥文件的 ".pub" 文件,并且只请求 ssh 代理中关联的密钥。这有助于避免 ssh 代理中包含多个密钥时出现“Too many authentication failures for *username*”错误。

   --use-insecure-cipher
      启用使用不安全的加密算法和密钥交换方法。
      
      这将启用以下不安全的加密算法和密钥交换方法:
      
      - aes128-cbc
      - aes192-cbc
      - aes256-cbc
      - 3des-cbc
      - diffie-hellman-group-exchange-sha256
      - diffie-hellman-group-exchange-sha1
      
      这些算法是不安全的,可能允许攻击者恢复明文数据。
      
      如果使用了 ciphers 或 key_exchange 高级选项,则必须将此选项设置为 false。
      

      示例:
         | false | 使用默认的加密算法列表。
         | true  | 启用 aes128-cbc 加密算法和 diffie-hellman-group-exchange-sha256、diffie-hellman-group-exchange-sha1 密钥交换。

   --disable-hashcheck
      禁用执行 SSH 命令来确定是否支持远程文件哈希计算。
      
      留空或设置为 false 以启用哈希计算(建议),设置为 true 以禁用哈希计算。

   --ask-password
      允许在需要时询问 SFTP 密码。
      
      如果设置了此参数并且未提供密码,则 rclone 将:
      - 询问密码
      - 不使用 ssh 代理进行验证
      

   --path-override
      覆盖 SSH shell 命令要使用的路径。
      
      这允许在 SFTP 和 SSH 路径不同的情况下进行校验和计算。这个问题会影响 Synology NAS 等设备。
      
      例如,如果共享文件夹位于表示卷的目录中:
      
          rclone sync /home/local/directory remote:/directory --sftp-path-override /volume2/directory
      
      例如,如果主目录位于名为 "home" 的共享文件夹中:
      
          rclone sync /home/local/directory remote:/home/directory --sftp-path-override /volume1/homes/USER/directory

   --set-modtime
      如果设置了,则在远程服务器上设置修改时间。

   --shell-type
      远程服务器上的 SSH shell 类型,如果有的话。
      
      留空以自动检测。

      示例:
         | none       | 不允许 shell 访问
         | unix       | Unix shell
         | powershell | PowerShell
         | cmd        | Windows 命令提示符

   --md5sum-command
      用于读取 md5 哈希值的命令。
      
      留空以自动检测。

   --sha1sum-command
      用于读取 sha1 哈希值的命令。
      
      留空以自动检测。

   --skip-links
      设置为跳过任何符号链接和其他非常规文件。

   --subsystem
      指定远程主机上的 SSH2 子系统。

   --server-command
      指定在远程主机上运行 sftp 服务器的路径或命令。
      
      定义了 server_command 参数后,子系统选项将被忽略。

   --use-fstat
      如果设置了,则使用 fstat 替代 stat。
      
      有些服务器限制了打开的文件数量,在打开文件后调用 Stat 时会从服务器抛出错误。设置此标志将在已打开的文件句柄上调用 Fstat,而不是调用 Stat。
      
      其实际上有助于解决 IBM Sterling SFTP 服务器的问题,该服务器将“可提取性”级别设置为 1,这意味着任意给定时间只能打开 1 个文件。
      

   --disable-concurrent-reads
      如果设置了,则不使用并发读取。
      
      通常,并发读取是安全的并且不使用它们会降低性能,因此此选项默认禁用。
      
      有些服务器限制了文件的下载次数。使用并发读取可能会触发此限制,所以如果您的服务器返回
      
          Failed to copy: file does not exist
      
      那么您可能需要启用此标志。
      
      如果禁用了并发读取,则 use_fstat 选项将被忽略。
      

   --disable-concurrent-writes
      如果设置了,则不使用并发写入。
      
      通常,rclone 使用并发写入来上传文件。这将显著提高性能,特别是对于远程服务器。
      
      如果需要,此选项会禁用并发写入。
      

   --idle-timeout
      空闲连接关闭之前的最大时间。
      
      如果在给定的时间内没有返回连接到连接池,则 rclone 将清空连接池。
      
      设置为 0 以无限期保持连接。
      

   --chunk-size
      上传和下载的块大小。
      
      这控制 SFTP 协议数据包中有效载荷的最大大小。RFC 将其限制为 32768 字节(32k),这是默认值。
      然而,很多服务器支持更大的大小,通常限制为最大总包大小为 256k,并且将其设置得更大将极大地增加高延迟链路上的传输速度。
      这包括 OpenSSH,在这种情况下,使用值 255k 效果很好,留出了足够的空间用于开销,同时仍然在 256k 的总包大小内。
      
      在使用大于 32k 的值之前,请务必进行彻底测试,并且只在始终连接到相同服务器或经过足够广泛的测试后使用。如果出现“failed to send packet payload: EOF”、“connection lost”等错误,则尝试降低此值。由[rclone serve sftp](/commands/rclone_serve_sftp)运行的服务器将发送标准的 32k 最大有效载荷大小的数据包,因此在下载文件时不能设置不同的 chunk_size,但它接受达到 256k 总大小的数据包,因此对于上传,chunk_size 可以设置为上面的 OpenSSH 示例中的值。
      

   --concurrency
      一个文件的最大未完成请求数量
      
      这控制一个文件的最大未完成请求数量。将其增加可以提高高延迟链路上的吞吐量,但会占用更多的内存。
      

   --set-env
      要传递给 sftp 和命令的环境变量
      
      以以下形式设置环境变量:
      
          VAR=value
      
      以传递给 sftp 客户端和运行的任何命令(例如 md5sum)。
      
      通过以空格分隔多个变量,例如
      
          VAR1=value VAR2=value
      
      以及以引号中带有空格的方式传递变量,例如
      
          "VAR3=value with space" "VAR4=value with space" VAR5=nospacehere
      
      

   --ciphers
      用空格分隔的密码列表,按优先级排序用于会话加密。
      
      至少有一个密码必须与服务器配置匹配。可以使用 ssh -Q cipher 等命令来检查。
      
      如果 use_insecure_cipher 为 true,则不能设置此选项。
      
      示例:
      
          aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com
      

   --key-exchange
      用空格分隔的密钥交换算法列表,按优先级排序。
      
      至少有一个算法必须与服务器配置匹配。可以使用 ssh -Q kex 等命令来检查。
      
      如果 use_insecure_cipher 为 true,则不能设置此选项。
      
      示例:
      
          sntrup761x25519-sha512@openssh.com curve25519-sha256 curve25519-sha256@libssh.org ecdh-sha2-nistp256
      

   --macs
      用空格分隔的 MAC(消息认证码)算法列表,按优先级排序。
      
      至少有一个算法必须与服务器配置匹配。可以使用 ssh -Q mac 等命令来检查。
      
      示例:
      
          umac-64-etm@openssh.com umac-128-etm@openssh.com hmac-sha2-256-etm@openssh.com
      


选项:
   --disable-hashcheck    禁用执行 SSH 命令来确定是否支持远程文件哈希计算。 (默认值: false) [$DISABLE_HASHCHECK]
   --help, -h             显示帮助
   --host value           SSH 主机名称。 [$HOST]
   --key-file value       PEM 编码私钥文件的路径。 [$KEY_FILE]
   --key-file-pass value  解密 PEM 编码私钥文件所需的密码。 [$KEY_FILE_PASS]
   --key-pem value        原始的 PEM 编码私钥。 [$KEY_PEM]
   --key-use-agent        当设置时,强制使用 ssh 代理。 (默认值: false) [$KEY_USE_AGENT]
   --pass value           SSH 密码,留空以使用 ssh 代理。 [$PASS]
   --port value           SSH 端口号。 (默认值: 22) [$PORT]
   --pubkey-file value    可选的公钥文件路径。 [$PUBKEY_FILE]
   --use-insecure-cipher  启用使用不安全的加密算法和密钥交换方法。 (默认值: false) [$USE_INSECURE_CIPHER]
   --user value           SSH 用户名。 (默认值: "$USER") [$USER]

   高级选项

   --ask-password               允许在需要时询问 SFTP 密码。 (默认值: false) [$ASK_PASSWORD]
   --chunk-size value           上传和下载的块大小。 (默认值: "32Ki") [$CHUNK_SIZE]
   --ciphers value              用空格分隔的密码列表,按优先级排序用于会话加密。 [$CIPHERS]
   --concurrency value          一个文件的最大未完成请求数量 (默认值: 64) [$CONCURRENCY]
   --disable-concurrent-reads   如果设置了,则不使用并发读取。 (默认值: false) [$DISABLE_CONCURRENT_READS]
   --disable-concurrent-writes  如果设置了,则不使用并发写入。 (默认值: false) [$DISABLE_CONCURRENT_WRITES]
   --idle-timeout value         空闲连接关闭之前的最大时间。 (默认值: "1m0s") [$IDLE_TIMEOUT]
   --key-exchange value         用空格分隔的密钥交换算法列表,按优先级排序。 [$KEY_EXCHANGE]
   --known-hosts-file value     可选的已知主机文件路径。 [$KNOWN_HOSTS_FILE]
   --macs value                 用空格分隔的 MAC(消息认证码)算法列表,按优先级排序。 [$MACS]
   --md5sum-command value       用于读取 md5 哈希值的命令。 [$MD5SUM_COMMAND]
   --path-override value        覆盖 SSH shell 命令要使用的路径。 [$PATH_OVERRIDE]
   --server-command value       指定在远程主机上运行 sftp 服务器的路径或命令。 [$SERVER_COMMAND]
   --set-env value              要传递给 sftp 和命令的环境变量 [$SET_ENV]
   --set-modtime                如果设置了,则在远程服务器上设置修改时间。 (默认值: true) [$SET_MODTIME]
   --sha1sum-command value      用于读取 sha1 哈希值的命令。 [$SHA1SUM_COMMAND]
   --shell-type value           远程服务器上的 SSH shell 类型,如果有的话。 [$SHELL_TYPE]
   --skip-links                 设置为跳过任何符号链接和其他非常规文件。 (默认值: false) [$SKIP_LINKS]
   --subsystem value            指定远程主机上的 SSH2 子系统。 (默认值: "sftp") [$SUBSYSTEM]
   --use-fstat                  如果设置了,则使用 fstat 替代 stat。 (默认值: false) [$USE_FSTAT]

Last updated