jruby - 为什么不支持 key 类型 ecdsa-sha2-nistp256?

标签 jruby net-ssh

我正在尝试使用 ruby​​ gem net-ssh 并收到如下所述的错误

jruby-9.1.15.0 :001 > require "net/ssh"
 => true 
jruby-9.1.15.0 :002 > Net::SSH.start('myhost.dev', 'username' password: 'password', verbose: Logger::DEBUG){|ssh| puts ssh.exec!('hostname')}
D, [2018-01-17T14:24:29.633089 #26123] DEBUG -- net.ssh.transport.session[7d0]: establishing connection to myhost.dev:22
D, [2018-01-17T14:24:29.884816 #26123] DEBUG -- net.ssh.transport.session[7d0]: connection established
I, [2018-01-17T14:24:29.888234 #26123]  INFO -- net.ssh.transport.server_version[7d2]: negotiating protocol version
D, [2018-01-17T14:24:29.888926 #26123] DEBUG -- net.ssh.transport.server_version[7d2]: local is `SSH-2.0-Ruby/Net::SSH_4.2.0 java'
D, [2018-01-17T14:24:29.952538 #26123] DEBUG -- net.ssh.transport.server_version[7d2]: remote is `SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8'
NotImplementedError: unsupported key type `ecdsa-sha2-nistp256'
        from /home/qpi/.rvm/gems/jruby-9.1.15.0@some_gem/gems/net-ssh-4.2.0/lib/net/ssh/buffer.rb:286:in `read_keyblob'

buffer.rb:286:in read_keyblob 引发错误。 Here引发错误的代码部分

unless defined?(OpenSSL::PKey::EC)
    raise NotImplementedError, "unsupported key type `#{type}'"

好的..让我们检查是否定义了OpenSSL::PKey::EC:

jruby-9.1.15.0 :003 > defined?(OpenSSL::PKey::EC) ? 'defined' : 'not defined'
 => "defined"

我做错了什么?

当我使用ruby(不是jruby)时,一切正常

最佳答案

这不是一个真正的解决方案,但我找到了一个对我有用的技巧。

https://github.com/jruby/jruby-openssl/issues/105

简而言之,在 Net::SFTP.start 之前,放置这两行。

Net::SSH::Transport::Algorithms::ALGORITHMS.values.each { |algs| algs.拒绝! { |a| a =~/^ecd(sa|h)-sha2/} } Net::SSH::KnownHosts::SUPPORTED_TYPE.拒绝! {|t| t =~/^ecd(sa|h)-sha2/}

你的问题应该就消失了。

关于jruby - 为什么不支持 key 类型 ecdsa-sha2-nistp256?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48301264/

相关文章:

java - 从 JRuby 调用 Java 类的问题

java - 在 jruby on Rails 中哪里设置 java 选项?

tomcat - Warble JAR 在 Tomcat 6 上运行不正常的问题,在 Webrick 上运行良好

ruby - Net::SSH sudo 命令在输入密码后挂起

ruby - Net::SSH:创建一个可以与之交互的 ruby​​ SSH 服务器有多容易?

ruby-on-rails - rails activerecord 统计/趋势/时间序列图数据

jruby - 如何让 drip 将现有的 vm 与 dripmain.rb 一起用于 rails 应用程序?

ruby 网络 ssh : How to authenticate with pubkey using a gateway

asp.net - 基于浏览器(免费使用)的 SSH

linux - 跨多个服务器删除除文件 + 链接文件之外的所有内容 (NET::SSH::MULTI)