Ruby/Net SSH 只尝试一次用户名和密码?

标签 ruby net-ssh

是否有办法在使用 Net::SSH.start() 尝试输入用户名和密码序列后立即失败?我想测试一下凭据是否有效,然后停止,这是我的代码

output = 0
Net::SSH.start('host', 'user', :password => "pass") do |ssh|
   output = ssh.exec! 'echo "1"'
end
puts output

最佳答案

这应该将身份验证限制为仅密码,并且没有提示或重试:

Net::SSH.start('host', 'user',  
               :password     => 'pass', 
               :auth_methods => [ 'password' ],
               :number_of_password_prompts => 0)

:auth_methods 限制 SSH 仅尝试数组中列出的身份验证方法。在本例中,我们只想尝试密码身份验证。

:number_of_password_prompts 仅适用于 password 身份验证方法,如果将其设置为零,它将永远不会提示输入密码,即使如果认证失败。

关于Ruby/Net SSH 只尝试一次用户名和密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27954274/

相关文章:

rubygems - 无法安装chef,gem版本与net-ssh net-ssh-multi net-ssh-gateway冲突

ruby - 从 ruby​​ 中的单段中的标准输入或文件读取

ruby-on-rails - 如何访问在事务中创建的变量?

ruby-on-rails - capybara :查找(元素)使用选择器来定位复杂的属性名称

ruby - 无法使用 key 与 Ruby 和 net/ssh 连接

perl - 如何使用 ssh 在远程主机中创建文件以及创建目录

ruby - 在 Mac OSX 10.6.8 上安装 ruby​​ 1.9.3 时安装日志中出现 Openssl 错误消息

ruby-on-rails - 解密密码——RoR

ruby - Ruby 中使用 net-sftp 进行基于密码 key 的身份验证

ruby - Net::SSH 连接失败