使用net-ssh与使用ssh命令的选项时ConnectionTimeout错误?

时间:2017-10-02 03:02:17

标签: ruby ssh net-ssh

我正在尝试使用the net-ssh documentation连接到远程服务器。我正在使用以下选项:

  • :username
  • :port
  • :keys
  • :host

将值设置为我在Host文件中配置的~/.ssh/config的值,该文件用于使用ssh命令连接到同一远程服务器。但是,我在irb中尝试运行以下行时遇到错误:

session = Net::SSH.start( # my options here # )

错误:

Net::SSH::ConnectionTimeout: Net::SSH::ConnectionTimeout
    from /Users/jake/.gem/gems/net-ssh-4.2.0/lib/net/ssh/transport/session.rb:90:in `rescue in initialize'
    from /Users/jake/.gem/gems/net-ssh-4.2.0/lib/net/ssh/transport/session.rb:57:in `initialize'
    from /Users/jake/.gem/gems/net-ssh-4.2.0/lib/net/ssh.rb:237:in `new'
    from /Users/jake/.gem/gems/net-ssh-4.2.0/lib/net/ssh.rb:237:in `start'
    from (irb):14
    from /usr/local/bin/irb:11:in `<main>'

这是我的配置/参数错误还是我需要调用另一个命令?

1 个答案:

答案 0 :(得分:2)

我的问题是我错误地指定了我的论点。如果您正在使用选项,则需要将hostusername指定为位置参数,然后可以对其余参数使用散列。这样做的:

Net::SSH.start('host', 'user', :port => #my port#, :keys => ['/path/to/key'])

为我工作。