Vb6 使用批处理文件连接到linux服务器时出错。能够与Filezilla连接
我正在尝试在VB 6.0应用程序中通过FTP连接到远程服务器 我尝试使用Inet连接到远程服务器,但它给出了状态未知错误(代码:120089)。所以我试图通过批处理文件来完成这项工作。我创建了一个批处理文件,如下所示:-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%)(* ) 我
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服务器。谢谢!我必须添加一个额外的%以防止密码中的%被解释为特殊字符。