使用批处理文件连接到Linux服务器时出错。能够与Filezilla连接

时间:2010-09-28 12:59:02

标签: vb6 ftp batch-file sftp

我正在尝试通过FTP在我的VB 6.0应用程序中连接到远程服务器。

我尝试使用Inet连接到远程服务器,但它给出了状态未知错误(代码:120089)。所以我试图通过批处理文件来做到这一点。我创建了一个批处理文件,如下所示: -

open 192.168.1.3 22  
root  
!@#%RedHat%)(*  
cd "/opt/test"  
put "C:\envars.exe" "envars.exe"  
bye  

(用户名为'root'&
   密码是!@#%RedHat%)(*
 )

我尝试从命令提示符运行批处理文件,如下所示: - C:> ftp -s:F:\ testScript.txt

现在我收到以下错误: - “ftp:connect:unknown error number”

以前我收到消息, “连接的” 其次是, “连接由远程主机关闭。”

但是,我可以使用Filezilla连接到此服务器。

如果您能够找出问题所在,请告诉我。

提前致谢
Sujit

3 个答案:

答案 0 :(得分:1)

确定是否要连接到端口22? 21是通常的FTP端口。

此外,您应该尝试手动执行该脚本(运行ftp并自行输入)以查看错误发生的位置。可能是您的防火墙阻止了活动模式下的返回流量(请参阅Filezilla是否以被动模式运行)。


根据您的评论,您肯定会连接到安全的FTP服务器。 Windows附带的ftp.exe程序仅执行标准FTP。

"ftps client for windows"的快速Google提供了许多可能性,其中一种是Putty中的安全FTP客户端,这是我们在工作中使用(强烈推荐)的工具。另一个是CygWin附带的sftp

我不相信其中任何一个都允许您以交互方式指定密码。他们正确地假设您出于安全目的使用它们,并且在脚本中使用明文密码会使安全性无法实现。

您最好的选择是按照SSH要求的方式设置共享密钥。这是最安全的方式。

但是,如果您对安装的简易性而不是安全性更感兴趣,则可以使用expect等待密码提示,然后将密码提供给SFTP程序。 CygWin也附带expect(Putty没有)所以我建议使用它。

答案 1 :(得分:0)

您应该在端口21上连接。端口22用于SSH连接,这解释了为什么Filezilla可以连接,因为它支持FTPS(FTP over SSH)。

答案 2 :(得分:0)

如果不评论密码的适当性(或其他方式),您使用的几个字符可能会被批处理文件解释为特殊字符。检查(可能通过ECHO语句)并确保按原样传递该特定字符串。

相关问题