2010-09-28 11 views
0

我想通過我的VB 6.0應用程序中的FTP連接到遠程服務器。使用批處理文件連接到Linux服務器時出錯。能夠連接Filezilla

我試圖使用Inet連接到遠程服務器,但它給出狀態未知錯誤(代碼:120089)。所以我試圖通過批處理文件來做到這一點。我創建瞭如下的批處理文件: -

open 192.168.1.3 22 
root 
[email protected]#%RedHat%)(* 
cd "/opt/test" 
put "C:\envars.exe" "envars.exe" 
bye 

(用戶名是 '根' &
密碼是@#%的RedHat%!)(*

我試圖運行從批處理文件命令提示符如下: - C:> ftp的-s:F:\ testScript.txt

現在,我收到以下錯誤: - 「FTP:連接:未知錯誤號」

以前我收到消息, 「已連接」 後跟, 「連接被遠程主機關閉」。

但是,我可以使用Filezilla連接到此服務器。

請讓我知道你是否能夠弄清楚是什麼問題。

在此先感謝
Sujit

回答

1

確定要被連接到端口22? 21是通常的FTP端口。

此外,您應該嘗試手動執行該腳本(運行ftp並在自己中輸入它們)以查看錯誤發生的位置。可能是因爲您的防火牆阻止了主動模式下的返回流量(請參閱Filezilla是否以被動模式運行)。


根據您的評論,您絕對可以連接到安全的FTP服務器。 Windows附帶的ftp.exe程序僅執行標準FTP。

"ftps client for windows"的快速谷歌發現了很多可能性,其中之一是Putty中的安全FTP客戶端,這是我們在工作中使用(並強烈推薦)的一種工具。另一個是CygWin自帶的sftp

我不相信這些允許你指定一個密碼,而不是交互式。他們正確地認爲你出於安全目的使用它們,並且在腳本中以明文形式輸入密碼會導致安全問題。

您最好的選擇是按照SSH要求的方式設置共享密鑰。這是最安全的方式。

但是,如果您對設置的簡易性而非安全性更感興趣,則可以使用expect來等待密碼提示,然後將密碼提供給SFTP程序。 CygWin也附帶expect(膩子不),所以我建議使用它。

+0

根據您的建議,我嘗試了每個命令從ftp提示符如下: - ftp>打開192.168.1.33 22 連接到192.168.1.33。 SSH-2.0-OpenSSH_4.3 連接當我連接通過遠程主機 關閉,而無需指定端口22出現此錯誤 > FTP:連接:未知錯誤數 我試圖使用端口22 FileZilla的,其連接使用sftp可以連接到這臺服務器。 請讓我知道,如果你能弄清楚這裏的東西。 – 2010-09-29 06:57:00

+0

是的,Filezilla中的傳輸模式是「被動」,並選擇了「允許故障時回退到其他模式」選項。 – 2010-09-29 07:31:37

+0

同時,由'Hansup'在下面的線程中建議的方法似乎適用於我,當我從命令行嘗試它時。 2010-09-29 07:58:08

0

您應該在端口21上連接。端口22用於SSH連接,這解釋了爲什麼Filezilla可以連接,因爲它支持FTPS(通過SSH的FTP)。

+0

如果我想使用FTPS連接,請讓我知道我的選擇。 – 2010-09-29 06:59:29

+0

您可以使用WinSCP連接到FTPS服務器。 – David 2010-09-29 16:36:36

0

在不評論密碼的適用性(或其他)的情況下,您使用的幾個字符可能會被批處理文件解釋爲特殊字符。檢查(也許通過ECHO語句)並確保該特定字符串按原樣傳遞。

+0

謝謝菲爾!我不得不添加一個額外的%來防止密碼中的%被解釋爲特殊字符。 – 2010-10-13 10:56:34

相關問題