我正在尝试使用python和paramiko自动化部署一个Linux服务器。问题是,当我第一次连接到这个定制的Linux操作系统时,它会要求提供它的初始“安装程序”的参数。
在设置这些参数之前,您不能对服务器执行任何操作。第一个参数是设置新密码,终端会提示您,如下所示。
*WARNING: Your password has expired.
You must change your password now and login again!
New password:
我不知道如何发送基本的用户输入,比如一个新的密码。据我所知,exec_command 实际上是期望linux命令而不仅仅是一串字符传递到终端。
如何简单地连接并向终端发送一个原始字符串来完成此操作?
这是我尝试过的,但不起作用:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('my_host', username='admin', key_filename='My path to private key file')
stdin, stdout, stderr = ssh.exec_command('sleep 10')
stdin.write('NewPassword')
stdin.write('NewPassword')
ssh.close()
1条答案
按热度按时间eoxn13cs1#
我使用***.invoke_shell***方法和***.send***方法找到了解决方案。通道打开后,我使用.send传递输入,然后使用.recv获得反馈并确保安装程序继续运行。我只是简单地重复了这一过程,以获得所有需要的输入。现在,我将把它转换为一个函数以简化流程。