2011-07-04 5 views
1

は、まず、私は完全なSFTP &のssh初心者だ、とPerlにかなり新しいです。リモートサーバーに接続してファイルを取得するためのスクリプトを作成しようとしています。両方のサーバーはWindows 2003のボックスです。私は、サーバー上のSFTPサーバをインストールしていると、ユーザー名、および私のコードで指定したポート番号(コードのセキュリティ上の理由から、サンプルから除去)同じIPアドレスでfilezillaのクライアントを使用して接続することができます。Perlのネット:: SFTP ::外国のPlink接続問題

私が持っているコードの接続ブロックは次のとおりです。

がホスト「SFTP」を見上げる 接続を開くことができません:私は次の出力を取得するスクリプトを実行すると

my $sftp = Net::SFTP::Foreign->new(
    host => 'xx.xxx.xxx.xxx', 
    user => 'radiospx', 
    port => '22', 
    ssh_cmd => "C:\\Program Files\\putty\\plink.exe", 
    more => [qw(-v -i)] 
); 

$sftp->error and die " SSH connection failed: " . $sftp->error; 

ホストはしていませんリモートサーバへの接続はimport.plライン34

で破断され、誰もが私が間違って行くよどこ勧めできます:SSH接続が失敗した存在。 filezillaが完全に動作するので、サーバは確実にsftp接続を受け入れます。

答えて

2

あなたはmoreを通過さ-iのplinkオプションには引数が必要です:

my $sftp = Net::SFTP::Foreign->new(
    host => 'xx.xxx.xxx.xxx', 
    user => 'radiospx', 
    port => '22', 
    ssh_cmd => "C:\\Program Files\\putty\\plink.exe", 
    more => ['-v', -i => "C:\\path\\to\\the\\private.key"] 
); 

$sftp->error and die " SSH connection failed: " . $sftp->error; 
+1

おかげで@salva、SFTPは常にセットアップする鍵ペアを必要としていますか? 私は出力を得る-iのplinkオプション削除する場合:ホストを探し を<>ポート22 への接続「<>」 は<>への接続に失敗しました:ネットワークエラー:接続が ネットワークエラーを拒否しました:接続が を拒否しました致命的なエラー:ネットワークエラー:接続が拒否されました SSH接続に失敗しました: import.pl line 34. – user543464

+0

@ user543464:コマンドラインからplinkと接続しようとしました: "C:\ program files \ putty \ plink.exe "-P 22 radiospx @ xx.xxx.xxx.xxx'、どうしますか? – salva