Login removed to superuser mode on Debian 10 using pexpect/pxssh python

You need to use the Python language to remotely change the ssh ip address to the OS Debian 10.

I decided to do this via pexpect/pxssh, but to change the ip address, you need to enter superuser mode via su and enter the password.

How to implement password input via a script?

Here is my code:

from pexpect import pxssh
try:
    s = pxssh.pxssh()
    hostname = '192.168.1.1'
    username = 'user'
    password = 'root'
    s.login(hostname, username, password)
    s.sendline('uptime')   
    s.prompt()        
    print(s.before)
    s.sendline('su')
    s.prompt()
    print(s.before)
    s.sendline('sudo ifconfig ens33 192.168.1.14 netmask 255.255.255.0')
    s.prompt()
    print(s.before)
except pxssh.ExceptionPxssh as e:
    print("pxssh failed on login.")
    print(e)

1 answers

Try this way:

from pexpect import pxssh

psswd = 'ur psswd'

try:
    s = pxssh.pxssh()
    hostname = '192.168.1.1'
    username = 'user'
    password = 'root'
    s.login(hostname, username, password)
    s.sendline('uptime')   
    s.prompt()        
    print(s.before)
    s.sendline('su')
    s.prompt()
    print(s.before)

    s.sendline(psswd)
    s.prompt()
    print(s.before)

    s.sendline('sudo ifconfig ens33 192.168.1.14 netmask 255.255.255.0')
    s.prompt()
    print(s.before)
except pxssh.ExceptionPxssh as e:
    print("pxssh failed on login.")
    print(e)
 1
Author: Exord, 2020-09-26 03:32:29