【发布时间】:2010-10-15 06:07:01
【问题描述】:
我正在使用 Net/TELNET 连接到远程主机,尝试运行 su 命令以获得 root 权限。我就是这样做的
require 'net/telnet'
localhost = Net::Telnet::new("Host" => "192.147.217.27",
"Timeout" => 50,
"Prompt" => /[$%#>] \z/n)
localhost.login("dvsdkrp", "dvsdkvrp") { |c| print c }
localhost.cmd("cd /home/dvsdkrp/workdir/smruti") { |c| print c }
localhost.cmd("su") { |c| print c }
localhost.puts("passwd"){ |c| print c }
我能够登录并能够执行 smruti 目录,但是当我使用 su 命令时,它会将我带到密码提示符,但随后我收到此错误,即使我将 Timeout 参数更改为 150
Password: C:/Ruby/lib/ruby/1.8/net/telnet.rb:552:in `waitfor': timed out
while waiting for more data (Timeout::Error)
from C:/Ruby/lib/ruby/1.8/net/telnet.rb:679:in `cmd'
from tel.rb:7
我该怎么办?
【问题讨论】:
-
您真的确定要发送未加密的根密码吗?为什么不使用 SSH?
-
pafcu 这对我来说不是问题意味着我在发送未加密的 root 密码时没有问题
-
我也尝试了 ssh,但出现了一些身份验证失败错误
-
我会设置 SSH 密钥,这样你就可以在没有密码的情况下进入 root。另一种选择是使用 Expect 而不是 Net::Telnet。
-
感谢 Jason,但为什么无法使 su 命令成功运行并提示输入密码,但之后出现错误