Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/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
使用“authorized_密钥”与Ruby进行SSH连接,但不使用用户名`_Ruby_Ruby On Rails 3_Shell_Command Line Arguments_Net Ssh - Fatal编程技术网

使用“authorized_密钥”与Ruby进行SSH连接,但不使用用户名`

使用“authorized_密钥”与Ruby进行SSH连接,但不使用用户名`,ruby,ruby-on-rails-3,shell,command-line-arguments,net-ssh,Ruby,Ruby On Rails 3,Shell,Command Line Arguments,Net Ssh,我已经使用authorized_keyspush对服务器进行了身份验证,因此我可以从我的系统运行命令ssh 192.168.1.101,并可以通过服务器进行连接 现在,我尝试了图书馆,但它对我不起作用 Net::SSH.start("192.168.1.209",username) do |ssh| @output=ssh.exec!("ls -l") end 如前所述,此用户名字段是必需的。我想要没有用户名的 所以,我试过这个 system('ssh 192.168.1.2

我已经使用
authorized_keys
push对服务器进行了身份验证,因此我可以从我的系统运行命令
ssh 192.168.1.101
,并可以通过服务器进行连接

现在,我尝试了图书馆,但它对我不起作用

  Net::SSH.start("192.168.1.209",username) do |ssh|   @output=ssh.exec!("ls -l")  end
如前所述,此用户名字段是必需的。我想要没有用户名的

所以,我试过这个

    system('ssh 192.168.1.209 "ls -l"') 

它为我运行命令。但我希望输出是一个变量,如第一个示例中的
@output
。是否有任何命令、gem或任何方式可以获得解决方案?

任何ssh连接都需要用户名。默认值是您的系统帐户名或您要连接的主机的
.ssh/config
中指定的任何名称

如果需要访问,则应将当前用户名设置为
ENV['USER']


如果您想知道该连接使用的是什么用户名,请尝试使用
ssh-v
查找详细模式,以解释发生的情况。

任何ssh连接都需要用户名。默认值是您的系统帐户名或您要连接的主机的
.ssh/config
中指定的任何名称

如果需要访问,则应将当前用户名设置为
ENV['USER']


如果您想知道用于该连接的用户名是什么,请尝试使用
ssh-v
,这是一种详细的模式来解释所发生的事情。

反引号的工作原理与“system”函数非常相似,但有着重要的区别。在反引号之间包含的Shell命令将以标准输出执行

所以,下面的语句应该执行ssh 192.168.1.209“ls-l”,并将目录文件列表放入@output变量中:

@output = `ssh 192.168.1.209 "ls -l"`

反引号的工作原理与“系统”功能非常相似,但有重要区别。在反引号之间包含的Shell命令将以标准输出执行

所以,下面的语句应该执行ssh 192.168.1.209“ls-l”,并将目录文件列表放入@output变量中:

@output = `ssh 192.168.1.209 "ls -l"`

您可以将参数传递到%x[]中,如下所示:

1. dom = ‘www.ruby-rails.in‘
2. @whois = %x[whois #\{dom\}]

您可以将参数传递到%x[]中,如下所示:

1. dom = ‘www.ruby-rails.in‘
2. @whois = %x[whois #\{dom\}]

此外,我需要在请求中运行5-10个命令。此外,我需要在请求中运行5-10个命令。实际上,在shell提示符中,我可以运行
ssh 192.168.1.209
it connect而不询问username,因为我复制了密钥并将其添加到授权密钥中。即使有授权密钥,也始终需要用户名,因为密钥不一定告诉服务器哪个用户正在登录。很可能
ssh
是从操作系统或配置文件中获取用户名的。确切地说,您可以连接,而无需请求用户名,但这并不意味着它实际上在shell提示符中没有使用用户名,我能够运行
ssh 192.168.1.209
it connect而不询问用户名,因为我复制了密钥并将其添加到授权密钥中。即使使用授权密钥,用户名也始终是必需的,因为密钥不一定告诉服务器哪个用户正在登录。很可能
ssh
是从操作系统或配置文件获取用户名的。确切地说,您可以连接而不需要用户名,但这并不意味着它没有使用用户名