首页 > 解决方案 > 从 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.

任何帮助,将不胜感激!!!

标签: c#batch-filecmdsftpwinscp

解决方案


推荐阅读