我对python编程很陌生,作为我学习的一部分,我决定开始编写一个简单的日常任务,这可以节省一些时间,我完成了大部分脚本,但现在我看到了一个很大的挑战在执行它时,因为我需要用sudo用户访问它来执行它一个远程服务器。基本上我需要的是,
登录远程系统。 运行sudo su - user(不需要密码作为基于SSH密钥的登录) 运行代码。 注销,结果分配给varible。 我需要存储在变量中的脚本的最终结果,以便我可以将其用于验证。
答案 0 :(得分:0)
感谢所有答案的人。 Fabric对我有用,下面是代码片段。
from fabric.context_managers import settings
from fabric.api import *
with settings(host_string='username@host',user='runcommand_user'):
run('command')
但在使用之前请确保您已在主机中设置了如下所示的sudo访问权限 (runcommand_user)NOPASSWD:ALL
你可以登录主机并执行' sudo -l'检查您是否具有上述访问权限
答案 1 :(得分:0)
另一种方法是使用paramiko如下。
un_con = paramiko.SSHClient() un_con.set_missing_host_key_policy(paramiko.AutoAddPolicy()) un_con.connect(host,username = user,key_filename = keyfile)stdin,stdout, stderr = un_con.exec_command(sudo -H -u sudo_user bash -c' command')