Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 使用gem net/ssh时出错<;=Net::SSH::AuthenticationFailed_Ruby_Ssh_Server - Fatal编程技术网

Ruby 使用gem net/ssh时出错<;=Net::SSH::AuthenticationFailed

Ruby 使用gem net/ssh时出错<;=Net::SSH::AuthenticationFailed,ruby,ssh,server,Ruby,Ssh,Server,在使用gemnet/ssh时,我得到一个错误: /usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.23/lib/net/ssh.rb:192:in `start': Net::SSH::AuthenticationFailed (Net::SSH::AuthenticationFailed) 我真的不明白发生了什么。。?我做了研究,发现了一些问题,但并没有真正回答我的问题 身份验证失败是否有具体原因?我所做的就是sshing到不同的服务器,是否有一

在使用gem
net/ssh
时,我得到一个错误:

/usr/local/lib/ruby/gems/1.9.1/gems/net-ssh-2.0.23/lib/net/ssh.rb:192:in
`start': Net::SSH::AuthenticationFailed (Net::SSH::AuthenticationFailed)
我真的不明白发生了什么。。?我做了研究,发现了一些问题,但并没有真正回答我的问题

身份验证失败是否有具体原因?我所做的就是
ssh
ing到不同的服务器,是否有一些特定的内容需要更改

资料来源:

require 'rubygems'
require 'net/ssh'
require 'etc'

print "Enter password: "
system "stty -echo"
@password = gets.chomp
system "stty echo"

def logged_in(server)
  cmd = `who`.gsub(/[ \t].*/,"").gsub(/\A.*\n/,'')
  check = Net::SSH.start(@host, @username, :password => @password) do |ssh|
    ssh.exec!(cmd)
  end
end

@host = %w(server_names_here) do |server|
  logged_in(server)
end
@username = Etc.getlogin
我想这可能是错误的密码,所以我尝试用echo“on”输入密码,我输入的是正确的密码,我还认为可能不是我的用户名,所以我使用:
@username='my_username'
我仍然收到相同的错误

编辑:
发现问题时,它与放置
@username
的位置有关

问题与放置
@username
的位置有关

require 'rubygems'
require 'net/ssh'
require 'etc'

print "Enter password: "
system "stty -echo"
@password = gets.chomp
system "stty echo"
@username = Etc.getlogin #<= YAY!

def logged_in(server)
  cmd = `who`.gsub(/[ \t].*/,"").gsub(/\A.*\n/,'')
  check = Net::SSH.start(@host, @username, :password => @password) do |ssh|
    ssh.exec!(cmd)
  end
end

@host = %w(server_names_here) do |server|
  logged_in(server)
end
需要“rubygems”
需要“net/ssh”
要求“等”
打印“输入密码:”
系统“stty-echo”
@password=gets.chomp
系统“stty回波”
@username=Etc.getlogin#@password)do | ssh|
ssh.exec!(cmd)
结束
结束
@主机=%w(此处为服务器名称)do |服务器|
已登录(服务器)
结束

@Jakuje哈哈,我刚刚编辑了这个问题,并详细介绍了这个问题