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

SSH into Remote machine and edit file as a root user using Python

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

首先,使用 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权限的普通用户。因此,首先脚本以 "normal user" 身份登录,然后使用 sudo 权限执行命令。

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