Search code examples
pythonparamiko

How to enter a command twice with paramiko


I use paramiko package in python, and I have to input command('pcoip-list-licese') and input password('Password1!').

When in 192.168.3.1 server same command, the 192.168.3.1 server request password.

Password Prompt Image

The ssh connect is okay, but after command input 'pcoip-list-licenses' password command does not work, so how can I modify this code?

import paramiko
 

Host = "192.168.3.1"
port = 22
ID = "root"
PASSWD = "password1!"


try:
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
    ssh.connect(Host, port=port, username=ID , password = PASSWD)
    
    print("ssh connect")
    print("Start verify License")
    
    #check License
    stdin, stdout, stderr = ssh.exec_command('pcoip-list-licenses')
    
    #input password
    ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("Password1!")
    #list_install_result = ssh_stdout.readlines()
    
    #for i in list_install_result:    
    #   print(i)

    #list_install_result.clear()

except Exception as err:
    print(err)

Solution

  • Since it's the pcoip-list-licenses command requesting the password, you'd have to write it into that stdin you get, e.g.

    stdin, stdout, stderr = ssh.exec_command('pcoip-list-licenses')
    stdin.write("password1!\n")
    stdin.flush()
    print(stdout.read().decode())
    print(stderr.read().decode())