我想自动登录Azure系统以访问虚拟机。我运行以下代码:
process_1 = subprocess.call(key.SSH_KEY + ' | ' + key.PASSKEY, shell = True) # Login to virtual machine
并接收以下内容:
/bin/sh: key.PASSKEY: command not found
azureuser@xx.xx.1x.1xx's password:
当它是azureuser@xx.xx.1x.1xx's password:
部分的输入时,它认为key.PASSKEY
是另一个命令。如何确保在运行此子流程命令时自动输入key.PASSKEY
作为密码?
使用以下视频找到了答案:https://www.youtube.com/watch?v=8QfD8V_-7ok
我做到了:
ch = pexpect.spawn(key.SSH_KEY)
ch.logfile = sys.stdout.buffer
ch.expect("azureuser@xx.xx.1x.1xx's password:")
ch.sendline(key.PASSKEY)
ch.expect("azureuser@vm")
ch.sendline('ls')