新手问题 gem 'net-ssh' 调用 Net::SSH.start ('host', 'user', :password => "password") 方法时候 用户名或者密码错误情况下程序卡死

bajiudongfeng · 2015年09月13日 · 最后由 bajiudongfeng 回复于 2015年10月14日 · 2256 次阅读

如下:这是我的代码: 实际发现如果用户名或者密码错误的时候,程序会卡死. 看了一下源码如下: 按理用户名密码不对应该抛出异常才对啊. 然后在 rails c 里边试了一下,发现如果用户名密码不对,会让你继续输入密码,如果三次全部错误才会报错. 那么这该如何解决呢? 谢谢!

有个 on_falure 可以看一下。

http://net-ssh.github.io/ssh/v1/chapter-5.html

channel.on_failure do
  puts "shell could not be started!"
end
channel.on_data do |ch,data|
  puts "recieved #{data} from shell"
end
channel.on_close do
  puts "shell terminated"
end

这个 gem 包我也在用,抽空鼓捣一下。

#1 楼 @ericguo 之前用了一种不太好的方式解决了问题,今天看 gem 代码的时候发现 ssh.rb 文件中注释有个参数:number_of_password_prompts 设置为0就 ok 了.然 github 上给的文档可能比较老,没有提到这个参数.

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