我正在使用Rye ruby gem连接到服务器,我遇到了问题,如果我尝试从那里运行任何命令,我会收到以下错误:
rbox = Rye :: Box.new(服务器,:用户=>“用户”,:密码=>“密码”)
rbox.ls
指纹d3:a1:15:ab:05:0d:4e:45:9f:b3:94:14:ca:11:d6:与“server,10.10.10.2”不匹配 继续?
Net :: SSH :: HostKeyMismatch:Net :: SSH :: HostKeyMismatch
from C:/jruby-1.6.8/lib/ruby/gems/1.8/gems/rye-0.9.8/lib/rye/box.rb:678:in `connect'
from C:/jruby-1.6.8/lib/ruby/gems/1.8/gems/rye-0.9.8/lib/rye/box.rb:778:in `run_command'
from C:/jruby-1.6.8/lib/ruby/gems/1.8/gems/rye-0.9.8/lib/rye/cmd.rb:106:in `which'
from (irb):31:in `evaluate'
from org/jruby/RubyKernel.java:1112:in `eval'
from C:/jruby-1.6.8/lib/ruby/1.8/irb.rb:158:in `eval_input'
from C:/jruby-1.6.8/lib/ruby/1.8/irb.rb:271:in `signal_status'
from C:/jruby-1.6.8/lib/ruby/1.8/irb.rb:270:in `signal_status'
from C:/jruby-1.6.8/lib/ruby/1.8/irb.rb:155:in `eval_input'
from org/jruby/RubyKernel.java:1439:in `loop'
from org/jruby/RubyKernel.java:1212:in `catch'
from C:/jruby-1.6.8/lib/ruby/1.8/irb.rb:154:in `eval_input'
from C:/jruby-1.6.8/lib/ruby/1.8/irb.rb:71:in `start'
from org/jruby/RubyKernel.java:1212:in `catch'
from C:/jruby-1.6.8/lib/ruby/1.8/irb.rb:70:in `start'
from C:\jruby-1.6.8\bin\irb:13:in `(root)'
我尝试从当前用户主页(〜/ .ssh / known_hosts)删除'known_hosts'文件,但仍然遇到同样的问题。 我尝试过连接不同的用户和同样的问题。
奇怪的是,指纹始终显示相同的值,因此不确定它的来源。
rbox.keys - >不返回任何东西,只是[]
黑麦键 - > NameError:未定义的局部变量或main的方法`keys':Object
rbox.host_key - >该进程无法访问该文件,因为该文件正由另一个进程使用。 => [,, 1,]
任何想法可能导致这个问题,还有什么可以尝试解决它或解决它?
非常感谢!
答案 0 :(得分:0)
这个库基于Ruby的Net :: SSH,它正在〜/ .ssh / known_hosts和/ etc / ssh / knowh_hosts中寻找缓存的主机密钥。 有关更多信息,请参阅有关Net :: SSH :: KnownHosts的文档。
答案 1 :(得分:0)
事实证明,即使您从以下地址连接:
* Local_pc => * Middle_server => * Final_server
在这两台服务器中的哪一台并不重要,似乎所使用的'known_hosts'文件不是这两台服务器中的任何一台,它是你的LOCAL known_hosts文件。
因此,您可以删除最终失败的特定主机的条目,也可以创建以下.ssh / config文件来忽略主机密钥:
Host *
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
该配置文件位于Windows中的以下路径中:
C:\Users\<your_user>\.ssh\config