# Sftp

```
名称:
   singularity storage create sftp - SSH/SFTP

用法:
   singularity storage create sftp [命令选项] [参数...]

描述:
   --host
      要连接的SSH主机。
      
      例如 "example.com"。

   --user
      SSH用户名。

   --port
      SSH端口号。

   --pass
      SSH密码，留空以使用ssh-agent。

   --key-pem
      原始的PEM编码的私钥。
      
      如果指定，将覆盖key_file参数。

   --key-file
      PEM编码的私钥文件的路径。
      
      留空或将key-use-agent设置为"use ssh-agent"。
      
      文件名中的开始`~`会被扩展，环境变量例如`${RCLONE_CONFIG_DIR}`也会被扩展。

   --key-file-pass
      解密PEM编码的私钥文件用的口令。
      
      仅支持PEM加密的密钥文件（旧的OpenSSH格式）。不能使用新的OpenSSH格式的加密的密钥。

   --pubkey-file
      可选的公钥文件的路径。
      
      如果有已签名的证书要用于身份验证，请设置此选项。
      
      文件名中的开始`~`会被扩展，环境变量例如`${RCLONE_CONFIG_DIR}`也会被扩展。

   --known-hosts-file
      可选的known_hosts文件的路径。
      
      设置此值以启用服务器主机密钥验证。
      
      文件名中的开始`~`会被扩展，环境变量例如`${RCLONE_CONFIG_DIR}`也会被扩展。

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

   --key-use-agent
      当设置时，强制使用ssh-agent。
      
      当还设置了key-file时，将读取指定密钥文件的".pub"文件，并且只会从ssh-agent请求相关的密钥。这可以避免在ssh-agent包含许多密钥时出现“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
      
      这些算法是不安全的，攻击者可能会通过它们来恢复明文数据。
      
      如果使用密码或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，将忽略subsystem选项。

   --use-fstat
      如果设置，则使用fstat而不是stat。
      
      一些服务器限制打开的文件数量，并且在打开文件之后调用Stat将引发服务器错误。设置此标志将在已打开的文件句柄上调用Fstat而不是Stat。
      
      已发现，这对于IBM Sterling SFTP服务器有帮助，该服务器的“extractability”级别设置为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”或“corrupted on transfer”等错误，请尝试降低该值。由[rclone serve sftp](/commands/rclone_serve_sftp)运行的服务器将使用标准的32k最大有效负载发送数据包，因此当下载文件时不能设置不同的chunk_size，但它接受的数据包的总大小可达256k，因此对于上传，chunk_size可以像上面的OpenSSH示例那样设置。

   --concurrency
      一个文件的同时待处理请求的最大数量。
      
      这控制一个文件的同时待处理请求的最大数量。增加该数量可以提高高延迟链接上的吞吐量，但会使用更多的内存。

   --set-env
      要传递给sftp和命令的环境变量。
      
      以以下形式设置环境变量：
      
          VAR=value
      
      以及以空格分隔的多个变量，例如
      
          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-agent。 (默认值: false) [$KEY_USE_AGENT]
   --pass value           SSH密码，留空以使用ssh-agent。 [$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文件的路径。 [$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]

   常规

   --name value  存储的名称 (默认值: 自动生成)
   --path value  存储的路径
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://data-programs.gitbook.io/singularity/zh/cli-reference/storage/create/sftp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
