Je souhaite pouvoir utiliser SFTP pour me connecter à un certain nombre de serveurs et télécharger certains fichiers pour aider à résoudre les problèmes au fur et à mesure qu'ils surviennent. Alors que nous pouvions utiliser un client, nous voulions commencer à automatiser le processus pour tout rationaliser.Authentification par clé avec net-sftp dans Ruby
Ma première tentative ressemble à ceci:
def download(files_to_download, destination_directory)
Net::SFTP.start(@server, @username, :password => @password) do |sftp|
files_to_download.each do |f|
local_path = File.join(destination_directory, File.basename(f))
sftp.download!(f, local_path)
end
end
end
Bien que cela fonctionne, cela signifie que nous avons besoin du mot de passe. Idéalement, je veux utiliser l'authentification par clé publique, mais je ne vois aucune référence à cela dans la documentation ou en ligne - est-ce possible?
Je préférerais ne pas utiliser chilkat.
Merci
Impressionnant! Je vous remercie. J'ai essayé et je suis maintenant obtenir: c: /ruby/lib/ruby/gems/1.8/gems/net-sftp-2.0.2/lib/net/sftp.rb: 43: dans 'start » : und méthode définie 'shutdown! ' pour nul: NilClass (NoMethodError) de C: /sourcecode/log_downloader/sftp.rb: 7: 'télécharger » de C: /sourcecode/log_downloader/sftp.rb: 24 Des journaux SSH, il ressemble il ne fait pas la clé publique Accepting, en demandant l'étape de signature que winscp a fait où il m'a demandé d'accepter la clé? Ou le client s'en occupe-t-il pour moi? –
Cela fonctionne-t-il également avec 'Net :: SFTP'? ou est-ce seulement avec 'Net :: SSH'? –
Oui, cela fonctionne également avec Net :: SFTP. Et si vous utilisez Net :: SSH/SFTP v2, vous pouvez passer la clé privée dans .start en tant qu'option: key_data, si l'enregistrer dans un fichier n'est pas une bonne option pour vous. – Ari