2016-04-27 50 views
2

Net::OpenSSHscp_put機能を使用してファイルをリモートマシンにSCPしようとしています。私は実行するたびに、私は次のエラーを取得する:Perl:Net :: OpenSSHのscp_putで許可が拒否されました

scp failed: scp failed: child exited with code 1 at copy_certs.pl line 32. 

これは私がこの操作を試みるコードスニペットです:私は手動でこの操作を実行すると

use Net::SSH::Perl; 
use Exporter; 
use Net::OpenSSH; 

my $user = "hello"; 
my $pass = "hello"; 
my $remote_path = "/hello_folder/ssl"; 

$host="10.221.33.4"; 
my $ssh = Net::OpenSSH->new($host, user => $user, password => $pass, master_opts => [-o => "StrictHostKeyChecking=no"]);  
$key_file = "certs/mykey.key"; 
$ssh->scp_put($key_file, $remote_path) 
       or die "scp failed: " . $ssh->error; 

、私はすべての権限がありません。問題。どこが間違っていますか?

+1

'$ Net :: OpenSSH :: debug = -1'のデバッグを有効にし、ここに出力を添付します。これは、モジュールがフードの下で実行しているコマンドを表示します。 – salva

答えて

2

リモートホストキーが変更されている場合は、権限の問題が発生します。次のコマンド( "ssh-keygen -f" /.ssh/known_hosts "-R")を実行して、リモートマシンのRSAキーを削除して、もう一度やり直してください。

+2

それを試してみました、それは問題ではありません。 –

関連する問題