Ruby在引用Net::SSH时返回语法错误

Ruby在引用Net::SSH时返回语法错误,ruby,net-ssh,Ruby,Net Ssh,我已安装了以下组件: Ruby版本1.8.7 Net::SSH 2.10.0 我在运行脚本时遇到以下错误: /usr/lib/ruby/site_ruby/1.8/net/ssh/authentication/session.rb:4:in `require': /usr/lib/ruby/site_ruby/1.8/net/ssh/authentication/key_manager.rb:199: syntax error, unexpected ':', expecting ')' (

我已安装了以下组件:

  • Ruby版本1.8.7
  • Net::SSH 2.10.0
我在运行脚本时遇到以下错误:

/usr/lib/ruby/site_ruby/1.8/net/ssh/authentication/session.rb:4:in `require': /usr/lib/ruby/site_ruby/1.8/net/ssh/authentication/key_manager.rb:199: syntax error, unexpected ':', expecting ')' (SyntaxError)
              identity.merge(privkey_file: file)
                                          ^
/usr/lib/ruby/site_ruby/1.8/net/ssh/authentication/key_manager.rb:266: syntax error, unexpected $end, expecting kEND
        from /usr/lib/ruby/site_ruby/1.8/net/ssh/authentication/session.rb:4
        from /usr/lib/ruby/site_ruby/1.8/net/ssh.rb:11:in `require'
        from /usr/lib/ruby/site_ruby/1.8/net/ssh.rb:11
        from test.rb:1:in `require'
        from test.rb:1

您知道为什么会抛出此错误吗?

net sshgem不再支持1.8.7。发布的行使用(它相当于
:privkey\u file=>file
)。根据它的最新版本,支持1.8的是。您可以使用
gem install net ssh-v 2.5.1安装此旧版本,但请确保删除已安装的较新版本。

谢谢。如何确定哪个版本的NetSSH与1.8.7兼容?我已经给出了答案。但要注意,旧版本可能包含更新版本中修复的bug。如果可能的话,至少升级到Ruby 1.9.3。