WinSCP:当前 SFTP-3 会话不支持您请求的命令。可以打开单独的 shell 会话来处理命令

Posted

技术标签:

【中文标题】WinSCP:当前 SFTP-3 会话不支持您请求的命令。可以打开单独的 shell 会话来处理命令【英文标题】:WinSCP: Current SFTP-3 session does not support command you request. Separate shell session may be opened to process the command 【发布时间】:2012-08-03 21:32:28 【问题描述】:

我正在使用 WinSCP 与仅支持 SFTP 且不允许 SSH 访问的远程服务器交互。

我的交互涉及移动/删除某个目录中的文件子集(由文件名标识)。

为了简化这一点,我通常会同步 [ Remote -> Local ],使用 cygwin 命令行在本地删除文件(这样我可以指定文件名列表而不是在 GUI 中选择文件),然后同步 [ Local -> Remote ] 将删除推送到远程。

但是,现在,我想进一步简化流程,以便将其交给运营人员。我去看了,很高兴发现 WinSCP 支持“命令”。

如果我可以在 WinSCP 的“指挥官”视图底部的“命令”字段中输入类似的内容,那就太好了:

get queue-queue-from-DLQ-ID-69703273-db51-11e1-ba9f-005056010165 \
    queue-queue-from-DLQ-ID-3d64697a-db51-11e1-b86e-005056010166 \
    queue-queue-from-DLQ-ID-76fdb365-db50-11e1-b78d-005056010164 \
    queue-queue-from-DLQ-ID-76ed3836-db50-11e1-ba9f-005056010165

但是当我在“命令”字段中输入这个时,我收到以下错误:

当前 SFTP-3 会话不支持您请求的命令。可以打开单独的 shell 会话来处理命令。是否要打开单独的 shell 会话?

当我点击确定时,我收到以下错误:

跳过启动消息时出错。您的 shell 可能与应用程序不兼容(建议使用 BASH)。

后一种可能是因为不支持SSH。

但我的问题是,既然get 是一个 SFTP 命令,为什么我会收到第一个错误? WinSCP 本身不是在幕后使用该命令来支持 GUI 的“复制到本地”操作吗?

如何配置 WinSCP 或 Linux 机器,以便执行上面显示的操作?

【问题讨论】:

【参考方案1】:

我想这回答了我的问题:http://winscp.net/eng/docs/remote_command

显然,只有 SCP 支持“命令”功能。

我想知道为什么 WinSCP 不能为 sftp 交互式会话期间通常支持的 SFTP 操作公开命令行界面。

【讨论】:

【参考方案2】:

您可以使用 WinSCP 命令行脚本界面来运行get 命令。

https://winscp.net/eng/docs/scripting


即使是 SFTP 协议也支持“命令”功能(远程命令执行)。但是此功能在远程服务器上执行命令。您不能使用此功能来自动化 WinSCP。并且没有可以轻松用于下载文件的远程命令。 见https://winscp.net/eng/docs/remote_command

【讨论】:

以上是关于WinSCP:当前 SFTP-3 会话不支持您请求的命令。可以打开单独的 shell 会话来处理命令的主要内容,如果未能解决你的问题,请参考以下文章

WinSCP和PuTTY在刷openwrt固件的使用教程

超时会话的时间

winscp无法连接虚拟机linux怎么办?

用WINscp连接linux时,拒绝访问!

创建临时用户帐户 - Django

在每个请求使用会话时如何让 NHibernate 重试死锁事务?