如何使用paramiko输入命令两次
我在用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())