在Ruby中通过SSH从远程位置读取本地文件

时间:2016-08-02 07:42:15

标签: ruby-on-rails ruby ssh

我想通过SSH通过远程服务器位置访问位于设备上的本地文件。

本地文件位于此目录

/Desktop/applications.csv

,它所在机器的IP地址为192.168.1.1,用户为user1

如何在Ruby on Rails中使用SSH从远程位置读取它?

我尝试过这样做,但失败了

hash = Digest::MD5.hexdigest(File.read("ssh  user@192.168.1.1 /Desktop/applications.csv"))

不确定如何去做。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

你有没有看过SSHKit?它允许您通过ssh在远程计算机上运行命令。

举个例子:

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

'read_applications'rake任务将执行File.read以及其他所需的操作。

编辑:

它是否知道您正在使用哪个用户进行身份验证?可能需要像这样添加用户:

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

并更改:用户是您的用户名。在Github页面上加载了更多示例。