如何使用ruby脚本以ROOT用户身份登录linux终端

如何使用ruby脚本以ROOT用户身份登录linux终端,linux,ssh,command-line-interface,su,Linux,Ssh,Command Line Interface,Su,我想使用SSH在远程服务器上运行脚本 我已经使用系统命令编写了所有正确运行的代码 要在远程服务器上运行我的代码,我需要在远程服务器上安装一些软件包 为此,我需要以ROOT用户身份登录到远程终端。当我尝试使用Ruby脚本时,我得到了如下结果 [not_root_user@remote_server]$ su Password: [not_root_user@remote_server]$ su -p ****** [root@remote_server]# 我需要一些命令,我可以使用它登录

我想使用SSH在远程服务器上运行脚本

我已经使用系统命令编写了所有正确运行的代码

要在远程服务器上运行我的代码,我需要在远程服务器上安装一些软件包

为此,我需要以ROOT用户身份登录到远程终端。当我尝试使用Ruby脚本时,我得到了如下结果

[not_root_user@remote_server]$ su
Password: 
[not_root_user@remote_server]$ su -p ******
[root@remote_server]# 
我需要一些命令,我可以使用它登录到远程服务器,如下所示

[not_root_user@remote_server]$ su
Password: 
[not_root_user@remote_server]$ su -p ******
[root@remote_server]# 

是否有任何linux命令接受其中的密码?

因此您希望脚本充当root用户

虽然不推荐使用,但您可以使用expect:

那里的wiki有一个基本自动telnet会话的演练,您可以根据自己的需要进行调整

但是,您将使用纯文本的根密码,这可能是一个安全问题。如果你这样做的话,一旦安装了这个软件包,我肯定会从宇宙中删除这个脚本的所有副本

但是如果你允许直接根用户登录,你已经有了一点安全问题。Sudo在我使用过的每一个现代linux发行版上都是开箱即用的,如果可能的话,我会坚持使用它


另一个同样无味的选项是通过ssh设置根到根的登录,无需密码。

那么您希望您的脚本充当根

虽然不推荐使用,但您可以使用expect:

那里的wiki有一个基本自动telnet会话的演练,您可以根据自己的需要进行调整

但是,您将使用纯文本的根密码,这可能是一个安全问题。如果你这样做的话,一旦安装了这个软件包,我肯定会从宇宙中删除这个脚本的所有副本

但是如果你允许直接根用户登录,你已经有了一点安全问题。Sudo在我使用过的每一个现代linux发行版上都是开箱即用的,如果可能的话,我会坚持使用它


另一个同样无味的选项是通过ssh设置根到根的登录,无需密码。

Sudo将是我解决这个问题的第一个选项。虽然不是最好的选择


您还可以通过SSH使用密钥身份验证,如果关闭了密码身份验证,则无需输入密码。

Sudo将是解决此问题的第一个选择。虽然不是最好的选择


您还可以通过SSH使用密钥身份验证,如果关闭密码身份验证,则无需输入密码。

我不确定您是否可以使用
expect
来编写
su
-我相信它使用了一些魔法来确保它从tty获得输入,而不是
stdin
。你应该在本地系统上启动expect脚本,我肯定我至少在5年或6年前在实验室中完成了,lol。是的,但询问者提到使用
system
调用在远程系统上运行命令,所以我假设他的脚本在那里运行。在任何一种情况下,它都可以工作。如果他从本地系统启动expect脚本并在远程系统上启动目标脚本,它将运行,或者如果他在远程系统上启动expect脚本,它将运行。我刚刚在Linux HFC-2600 3.0.0-12-generic#20 Ubuntu SMP Fri 10月7日14:50:42 UTC 2011 i686 i686 i386 GNU/Linux上运行了一个测试,它工作正常。将您带入登录shell,运行命令,退出。我不确定您是否可以使用
expect
来编写
su
-我相信它使用了一些魔法来确保它从tty获得输入,而不是
stdin
。您应该在本地系统上启动expect脚本,我确定我至少在5年或6年前在实验室中完成了它,哈哈。是的,但是询问者提到使用
system
调用在远程系统上运行命令,所以我假设他的脚本在那里运行。在任何一种情况下,它都可以工作。如果他从本地系统启动expect脚本并在远程系统上启动目标脚本,它将运行,或者如果他在远程系统上启动expect脚本,它将运行。我刚刚在Linux HFC-2600 3.0.0-12-generic#20 Ubuntu SMP Fri 10月7日14:50:42 UTC 2011 i686 i686 i386 GNU/Linux上运行了一个测试,它工作正常。使您进入登录shell,运行命令,退出。