c# - 从 C# 运行时,Sftp 在密码提示符处中止
问题描述
我有一个运行 sftp 命令的批处理文件,如果我从文件夹中双击它可以正常工作
,但是当我从 C# 代码执行批处理文件时,我收到一条错误
消息,提示“用户在密码提示符处中止”。
这是我执行批处理文件的 C# 代码:
Process proc = new Process();
proc.StartInfo.FileName = BatchFile + ".bat";
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WorkingDirectory = _tpDir;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
try
{
proc.Start();
proc.WaitForExit();
proc.Close();
}
这是我在批处理文件RcvEdi.bat中调用RcvEdi.txt的批处理文件代码:
WinSCP.exe /log="WinRecv.log" /ini=nul /script="RcvEdi.txt"
这是RcvEdi.txt中的代码:
open sftp://USERID@somesite.com/ -hostkey="ssh-rsa 2048 uAHzHhxcIEZu4cX3HbYlsIohejeZVQ1siT0oDihpP3g=" -privatekey="C:\folder\amichryprivatekey.ppk"
cd Outbox
mget *
exit
现在,如果我只是双击RcvEdi.bat文件或
从 WinSCP.exe 登录,这将起作用。
这是我的错误日志报告中的错误:
Offered public key
. 2021-11-10 12:11:04.810 Offer of public key accepted
! 2021-11-10 12:11:04.810 Authenticating with public key "rsa-key-20211005"
< 2021-11-10 12:11:04.810 Script: Authenticating with public key "rsa-key-20211005".
. 2021-11-10 12:11:04.810 Prompt (passphrase, "SSH key passphrase", <no instructions>, "Passphrase for key "rsa-key-20211005": ")
. 2021-11-10 12:11:04.811 User aborted at passphrase prompt
. 2021-11-10 12:11:04.811 Attempt to close connection due to fatal exception:
* 2021-11-10 12:11:04.811 **Connection has been unexpectedly closed.** Server sent command exit status 0.
. 2021-11-10 12:11:04.811 Closing connection.
任何帮助,将不胜感激!!!
解决方案
推荐阅读
- algorithm - 如何将集合的元素分组为 N 个部分的所有组合?
- spring-integration - Spring集成:如何在MessageChain中间实现JDBCOutboundGateway?
- python - 以python方式编辑字符串元组列表
- regex - 如何匹配模式之前的第一个单词和正则表达式中的模式本身?
- mysql - 我可以通过子查询在 excel 中复制这个等式吗?我开始区分购买和销售,但现在我被困住了
- javascript - 如何在javascript中使秒表与服务器同步
- reactjs - 使用浪涌部署后的空白页面
- python-3.x - python:通过不允许“/”或“-”或“dir”安全地沙盒用户提供的代码
- performance - 有没有更快/更好的方法来运行这个 TSQL WHILE 循环?
- google-apps-script - 如何在测验中为 checkboxGridItem 问题分配正确答案?