gpt4 book ai didi

ruby - 如何从 Ruby 将密码输入到另一个进程提示中

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:23 25 4
gpt4 key购买 nike

我正在编写一个需要使用 revssh 脚本在远程 Raspberry PI 上运行命令的应用程序。 revssh 是一个自定义脚本,它在某种程度上实现了 Revssh 协议(protocol)概念。它使用 ssh 反向隧道将命令从服务器发送到客户端。

我正在使用 Ruby 2.1,我尝试使用 IO.popen 来执行此操作,但它不起作用,因此我尝试了以下操作:

# revssh (short for reverse ssh ) enables the execution of remote commands 
# from the server on connected clients, like the 'psu_pi_analytics' here. but it requires
# to enter a root password each time you want to run a command using 'revssh -c'
IO.popen('revssh -c psu_pi_analytics uname -a', 'w+') do|io|
io.puts 'password' # enter the password when prompted
puts io.gets
end

如果要执行的命令在本地计算机上运行,​​则此代码有效,但在我的情况下无效。所以任何想法或建议。

这里重要的是如何处理使用 ssh 的 revssh 脚本创建的新连接,如果脚本直接从终端运行,则在终端中进行管理。

编辑:

不工作是指它仍然提示输入密码,即使我将密码输入 io。

最佳答案

您可以使用类似 Expect 的库(例如 RExpect、Expect4r)与其他进程进行交互。

与此相关的另一个问题:Is there an Expect equivalent gem for Ruby?

关于ruby - 如何从 Ruby 将密码输入到另一个进程提示中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22280782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com