新手问题 使用 Net::SCP::download 去远程服务器下载文件

jerrym · 2016年10月06日 · 最后由 jerrym 回复于 2016年10月07日 · 1953 次阅读

如题

现在的问题是服务器上设定了 sshkey(id_rsa), 代码怎么实现用 Net::SCP::download 来下载文件呢?在不使用密码登录目标服务器的情况下。 Net::SCP::download 能引用 sshkey(id_rsa)么? 还是别的方法? 请教各位!

把本机的ssh_key加到服务器的authorized_keys,然后 Net::SCP::download 不设置 password 参数应该就可以了

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 如上替换自己公钥地址和服务器信息即可

谢谢各位,是服务器的 sshkey 设置的有问题, 现在的问题是 Net::SCP::download 想要带上端口怎么弄呢?

def self.download!(host, username, remote, local=nil, options={}, &progress)
  options = options.dup
  start(host, username, options.delete(:ssh) || {}) do |scp|
    return scp.download!(remote, local, options, &progress)
  end
end
def self.start(host, username, options={})
  session = Net::SSH.start(host, username, options)
  scp = new(session)

  if block_given?
    begin
      yield scp
      session.loop
    ensure
      session.close
    end
  else
    return scp
  end
end

其中 option 选项可以参考: http://net-ssh.github.io/net-ssh/Net/SSH.html

#2 楼 @w7938940 ago

谢谢各位,是服务器的 sshkey 设置的有问题,现在的问题是 Net::SCP::download 想要带上端口怎么弄呢?

@jerrym 看 options 啊,里边包含有 port 参数

嗯,谢谢,找到了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号