SSH进入远程计算机并使用Python以root用户身份编辑文件

时间:2018-02-04 17:09:57

标签: python linux ssh paramiko

我正在开发一个Python脚本,它可以通过SSH连接到多个远程CentOS机器,并在'/ etc / sysconfig / network-scripts / ifcfg-eth1'中将'ONBOOT'的值从'yes'更改为'no'。 我可以使用Paramiko通过我的用户凭据SSH到远程计算机。 为了编辑'/ etc / sysconfig / network-scripts / ifcfg-eth1'文件,我必须成为一个sudo用户,然后我才能编辑该文件。 我面对的问题是我无法以root用户身份直接登录到CentOS。我应首先使用我的用户凭据登录,然后使用'sudo -s'和密码更改为root。 有没有办法用我的用户凭据ssh到远程机器并更改为root用户并编辑文件。?

1 个答案:

答案 0 :(得分:1)

首先,使用paramiko的ssh.connect建立连接,然后

   import paramiko
   ssh = paramiko.SSHClient()
   ssh.connect("hostname", username = "username", password = "password")
   cmd = "echo {} | sudo -S {}".format("password", "touch /opt/giri")
   ssh.exec_command(cmd)

登录用户是具有sudo权限的普通用户。所以首先脚本登录为"普通用户"然后使用sudo权限执行命令。

-S选项让sudo从stdinread获取它的sudo命令                    来自标准输入的密码而不是使用                    终端设备。