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

Vb6 使用批处理文件连接到linux服务器时出错。能够与Filezilla连接,vb6,ftp,batch-file,sftp,Vb6,Ftp,Batch File,Sftp,我正在尝试在VB 6.0应用程序中通过FTP连接到远程服务器 我尝试使用Inet连接到远程服务器,但它给出了状态未知错误(代码:120089)。所以我试图通过批处理文件来完成这项工作。我创建了一个批处理文件,如下所示:- open 192.168.1.3 22 root !@#%RedHat%)(* cd "/opt/test" put "C:\envars.exe" "envars.exe" bye (用户名为“root”& 密码为!@#%RedHat%)(* ) 我

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

我尝试使用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:连接:未知错误号”

之前我收到消息, “已连接” 然后, “远程主机已关闭连接。”

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

如果你能找出问题所在,请告诉我

提前感谢
Sujit是否确实要连接到端口22?21是常用的FTP端口

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


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

在谷歌上快速搜索“windows的ftps客户端”会发现许多可能性,其中之一是Putty中的安全FTP客户端,这是我们在工作中使用的工具(强烈推荐)。另一个是CygWin附带的
sftp

我认为这两种方式都不允许您以交互方式以外的方式指定密码。他们正确地假设您使用它们是出于安全目的,并且在脚本中使用明文密码将使安全性变得毫无意义

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


但是,如果您对设置的方便性而不是安全性更感兴趣,则可以使用
expect
等待密码提示,然后将密码提供给SFTP程序。还附带了
expect
(Putty没有),因此我建议使用它。

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

在不评论密码是否合适的情况下,批处理文件可能会将您使用的几个字符解释为特殊字符。检查(可能通过ECHO语句)并确保特定字符串按原样传递。

根据您的建议,我尝试了ftp提示符下的每个命令,如下:-ftp>打开192.168.1.33 22连接到192.168.1.33。SSH-2.0-OpenSSH_4.3连接被远程主机关闭,当我连接时未指定端口22,我收到此错误>ftp:connect:Unknown错误号我尝试使用端口22作为filezilla,使用sftp连接的filezilla能够连接到此服务器。请让我知道你是否能够从这里找到一些东西。是的,Filezilla中的传输模式是“被动”的,并且选择了“允许故障时返回到其他模式”选项。同时,当我从命令行尝试时,“Hansup”在下面的线程中建议的方法似乎对我有效。如果我想使用FTPS连接,请告诉我有哪些选项。您可以使用WinSCP连接到FTPS服务器。谢谢!我必须添加一个额外的%以防止密码中的%被解释为特殊字符。