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 中获取它
来自标准输入的密码而不是使用
终端设备。
我正在开发一个 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 中获取它 来自标准输入的密码而不是使用 终端设备。