2016-08-02 17 views
0

Ich möchte auf eine lokale Datei zugreifen, die auf einem Gerät über einen Remote-Server-Speicherort über SSH befindet.Lokale Datei von Remote-Standort über SSH in Ruby lesen

Die lokale Datei ist in diesem Verzeichnis

/Desktop/applications.csv 

und die IP-Adresse der Maschine es sich befindet ist 192.168.1.1 und Benutzer user1

Wie ich es von einem entfernten Standort lesen SSH in Ruby auf Schienen?

Ich habe versucht, dies zu tun, aber es scheitert

hash = Digest::MD5.hexdigest(File.read("ssh [email protected] /Desktop/applications.csv")) 

nicht sicher, wie es geht. Jede Hilfe wird geschätzt.

+0

Mögliche Duplikate von [verwenden Sie Ruby Net :: SSH, um eine Remote-Datei über Sudo zu lesen] (http://stackoverflow.com/questions/9840573/use-ruby-netssh-to-read-a-remote-file- via-sudo) – AlexN

Antwort

0

Haben Sie sich SSHKit angesehen? Sie können Befehle auf entfernten Maschinen über ssh ausführen.

Als Beispiel:

require 'sshkit' 
require 'sshkit/dsl' 
include SSHKit::DSL 

on '192.168.1.1' 
    within "/Desktop/" do 
    with rails_env: :production do 
     rake "read_applications"    
    end 
    end 
end 

Und die Rake Aufgabe 'read_applications' würde die File.read und was sonst wurde tun erforderlich.

EDIT:

Kennt es welche Benutzer Sie sind authentifiziert? Möglicherweise müssen Sie den Benutzer wie folgt hinzufügen:

on '192.168.1.1' 
    within "/Desktop/" do 
    as :user do 
     # do something 
    end 
    end 
end 

Und ändern: Benutzer, um Ihr Benutzername sein. Es gibt viele weitere Beispiele auf der Github-Seite.

+0

interessant, aber wenn ich das ausführen, sagt es mir ssh :: authenticationfailed. obwohl ich das aktuelle Passwort für den Benutzer eingegeben habe. Irgendein Grund warum? –