【发布时间】:2019-02-20 12:06:17
【问题描述】:
我在 windows 环境中有 tectia ssh 服务器。
当我使用sftpg3 -B cmd.txt username@host 时效果很好。唯一的问题是它不允许我远程执行文件,它只允许我移动文件。它从 cmd.txt 读取命令,但由于我无法执行任何操作,它会忽略这些命令。
好吧,当我做同样的事情但使用 sshg3 时,它根本不识别 -B 标志。
SSHG3 -B cmd.txt username@host
cmd.txt' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
我试过把 -B "cmd.txt"
我尝试将 cmd.txt 内容放在同一个脚本中,而不是将它们放在 cmd.txt 中并删除 -B,但它也不会以这种方式运行它们。
文档没有太多可取之处。它所说的只是使用 -B 进行批处理。
cmd.txt的内容:
D:
cd Library
cd Backup
parseLibrary.cmd
exit
尝试 sshg3 进入主机,导航到路径并在该主机上运行批处理文件。 有任何想法吗?
-B,--批处理模式 使用批处理模式。如果需要在终端上进行用户交互,则认证失败。
使用批处理模式要求您之前已将服务器主机密钥保存在客户端上,并为用户身份验证设置了非交互式方法(例如,基于主机的身份验证或不带密码的公钥身份验证)。
它确实使用公钥认证,终端上不需要用户交互。
在 sftpg3 的文档中注意到这一点
-B [ - |批处理文件]
-B - 选项允许从标准输入读取。当您想使用 sftpg3 启动进程并重定向标准输入管道时,此选项很有用。
通过将batch_file 的名称定义为属性,您可以在批处理模式下从给定文件执行SFTP 命令。该文件可以包含任何允许的 SFTP 命令。有关命令的说明,请参阅“命令”部分。
使用批处理模式要求您之前已将服务器主机密钥保存在客户端上,并为用户身份验证设置了非交互式方法(例如,基于主机的身份验证或不带密码的公钥身份验证)。
我猜批处理文件不同于批处理模式?
*我想通了。您必须为要执行的每个命令使用 -B 标志。
【问题讨论】: