2016-08-09 9 views
0

私はSSH経由で接続しようとしましたが、エラーメッセージ "シグナル1で殺されました"Perl SSHエラー - シグナル1で殺されました

これは私のコードです。

use CGI; 
use Net::OpenSSH; 

my $machineCon = 'my-server'; 
my $username = 'my-username'; 
my $password = 'my-password'; 

$ssh_obj = Net::OpenSSH->new(
    $machineCon, 
    strict_mode => 0, 
    master_opts => [-o => "StrictHostKeyChecking=no"], 
    ctl_dir => "/tmp/", 
    timeout => 200, 
    strict_mode => 0, 
    user  => $username, 
    password => $password, 
    ssh_cmd => '/usr/bin/ssh' 
); 

if(!$ssh_obj->error) 
{ 
    # Is my process running? 
    my $PROC = $ssh_obj->capture("pwd"); 
    print $PROC; 
} 
else 
{ 
    print $ssh_obj->error 
} 

私は多くのコメントを見てきましたが、それは私を助けません。 アドバイス ありがとう

+0

は、厳格な使用 '追加してみてください。警告を使う; '。警告がないことを確認してください。 –

+0

あなたのコードはうまく動作するかもしれません。 [cygwin sshによると、終了時に "シグナル1で殺されました](http://stackoverflow.com/q/12639615/2173773)によれば、プロキシコマンドを使用すると、何らかの残留出力が発生する可能性があります。このメッセージは無視しても、サイレントにしても安全です(リンクを参照)。 –

答えて

1

新しい()メソッド呼び出しでこのオプションを追加する必要があります。

kill_ssh_on_timeout => 0 

コードが現在タイムアウトしていない場合は、接続の問題があることがわかります。

そして、より多くの助けのために、ちょうどすべてのエラーを表示するには、この行を追加します。

$Net::OpenSSH::debug = ~0; 
関連する問題