Ich habe hier ein kleines Problem: Ich versuche, eine Datei mit SCP und Ruby auf einen Server mit einem privaten Schlüssel hochzuladen. Der Code sieht so aus:Wie mache ich SCP mit Ruby und einem privaten Schlüssel?
def transfer_file(source_file, destination_file)
$log.info("ScpDP: Key=#{@key}")
Net::SCP.start(@host, @userName, :keys => @key) do |scp|
scp.upload!(source_file,@folder + destination_file, :ssh => @key)
end
end
aber es gibt ein Problem ist, und nicht mit dem privaten Schlüssel, da wir es für die täglichen Zwecke nutzen, und ich erhalte die folgenden Protokollfehler:
I, [2010-08-24T11:21:27.247847 #14310] INFO -- : ScpDP: Key=/home/myself/.ssh/id_rsa
I, [2010-08-24T11:21:27.397971 #14310] INFO -- : SCP did not finish successfully (1) (Net::SCP::Error)
/usr/lib/ruby/gems/1.8/gems/net-scp-1.0.2/lib/net/scp.rb:351:in `start_command'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/channel.rb:585:in `call'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/channel.rb:585:in `do_close'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/session.rb:575:in `channel_close'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/session.rb:455:in `send'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/session.rb:455:in `dispatch_incoming_packets'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/session.rb:212:in `preprocess'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/session.rb:196:in `process'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/session.rb:160:in `loop'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/session.rb:160:in `loop_forever'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/session.rb:160:in `loop'
/usr/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/connection/session.rb:109:in `close'
/usr/lib/ruby/gems/1.8/gems/net-scp-1.0.2/lib/net/scp.rb:204:in `start'
/home/myself/work/server.rb:458:in `transfer_file'
Können Sie bitte darauf hinweisen, was hier falsch sein könnte? Ich habe zu diesem Zeitpunkt ziemlich begrenzte Erfahrungen mit Ruby.
vielleicht auch nur auf den Befehl scp CallOut? – rogerdpack
Wie ist @folder definiert? und fügen Sie bitte einen Beispielaufruf an die Methode transfer_file ein. –
Nach einigen Schwierigkeiten konnten wir das Problem auf ein Problem mit der Umgebungskonfiguration eingrenzen. Der obige Code ist korrekt, Entschuldigung für den Ärger darum. Für Interessierte gab es einige Probleme mit dem Verzeichniszugriff auf der "anderen" Seite. – fritzone