如何使用paramiko输入命令两次

-2 投票
1 回答
28 浏览
提问于 2025-04-12 18:16

我在用Python的paramiko库,得输入一个命令('pcoip-list-licenses')和一个密码('Password1!')。

当我在192.168.3.1这个服务器上执行同样的命令时,服务器会要求输入密码。

密码提示图

虽然ssh连接是正常的,但在输入命令'pcoip-list-licenses'后,密码的输入就不管用了。那么我该怎么修改这段代码呢?

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)

1 个回答

0

因为是 pcoip-list-licenses 这个命令在请求密码,所以你需要把密码写入到你得到的 stdin 中,比如说:

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

撰写回答