2016-04-27 5 views
2

Ich versuche SCP eine Datei in eine Remote-Maschine mit scp_put Funktion. Jedes Mal, wenn ich laufen lasse, erhalte ich folgende Fehlermeldung:Perl: Berechtigung verweigert mit scp_put von Net :: OpenSSH

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

Dies ist der Code-Schnipsel, wo ich diese Operation versuchen:

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; 

Wenn ich diesen Vorgang manuell durchführen, ich habe keine Erlaubnis Probleme. Wo gehe ich falsch?

+1

Aktivieren Sie das Debugging '$ Net :: OpenSSH :: debug = -1' und hängen Sie hier die Ausgabe an. Es zeigt uns die Befehle, die das Modul unter der Haube ausführt. – salva

Antwort

2

Wenn sich der Remote-Host-Schlüssel geändert hat, gibt es Berechtigungsprobleme. Entfernen Sie den RSA-Schlüssel des Remotecomputers, indem Sie den folgenden Befehl ausführen: "ssh-keygen -f" /.ssh/known_hosts "-R" und versuchen Sie es erneut.

+2

Versucht es, es ist nicht das Problem. –