Running Sudo Command with paramiko

前端 未结 4 838
北荒
北荒 2020-11-30 08:25

I am trying to execute a sudo command on a remote machine using python-paramiko, when I execute the command, I bind it with 3 streams, and I use the input stream to pass the

4条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-11-30 08:35

    Im sorry i dont have time for details answer but i was able to implement sudo commands on paramiko using this advise

    #!/usr/bin/env python
    import paramiko
    l_password = "yourpassword"
    l_host = "yourhost"
    l_user = "yourusername"
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(l_host, username=l_user, password=l_password)    
    transport = ssh.get_transport()
    session = transport.open_session()
    session.set_combine_stderr(True)
    session.get_pty()
    #for testing purposes we want to force sudo to always to ask for password. because of that we use "-k" key
    session.exec_command("sudo -k dmesg")
    stdin = session.makefile('wb', -1)
    stdout = session.makefile('rb', -1)
    #you have to check if you really need to send password here 
    stdin.write(l_password +'\n')
    stdin.flush()
    for line in stdout.read().splitlines():        
        print 'host: %s: %s' % (l_host, line)
    

提交回复
热议问题