Python操作远程服务器切换到root用户

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错
在自动化运维过程中,需要远程服务器切换到root用户下执行命令,尝试了一些方法,得到如下好用的方法,供大家使用:

import time
import paramiko
 
def verification_ssh(host,username,password,port,root_pwd,cmd):
    s=paramiko.SSHClient() 
    s.load_system_host_keys() 
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    s.connect(hostname = host,port=int(port),username=username, password=password)
    if username != ‘root’:
        ssh = s.invoke_shell()
        time.sleep(0.1)
        ssh.send(‘su – \n’)
        buff = ”
        while not buff.endswith(‘Password: ‘):
            resp = ssh.recv(9999)
            buff +=resp
        ssh.send(root_pwd)
        ssh.send(‘\n’)
        buff = ”
        while not buff.endswith(‘# ‘):
            resp = ssh.recv(9999)
            buff +=resp
        ssh.send(cmd)
        ssh.send(‘\n’)
        buff = ”
        while not buff.endswith(‘# ‘):
            resp = ssh.recv(9999)
            buff +=resp
        s.close()
        result = buff    else:
        stdin, stdout, stderr = s.exec_command(cmd)
        result = stdout.read()
        s.close()
    return result
 
if __name__ == “main”:
    verification_ssh(‘192.168.1.11′,’cimer’,’1q2w3e4r’,22,’1q2w3e4r’,’ifdown eth0′)

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn

未经允许不得转载:演道网 » Python操作远程服务器切换到root用户

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册