擅长:python、mysql、java
<p>您需要将密码发送到<code>sudo</code>命令。请通过将<code>get_pty = True</code>参数传递给<code>exec_command</code>函数调用,启用<code>tty</code>模式以执行命令。然后您需要通过<code>ssh_stdin</code>文件接口传递密码</p>
<pre><code>def startPacketReceiver():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(AutoAddPolicy())
ssh.connect(RECV_IP_ADDRESS, username="pi", password="raspberry")
ssh.stdin, ssh_stdout, ssh_stderr = ssh.exec_command("gcc Code/test.c && sudo ./a.out", get_pty=True)
print("raspberry", ssh_stdin) # Your password for sudo command
print("Done")
return ssh, ssh_stdin, ssh_stdout, ssh_stderr
</code></pre>
<p>然后您可以编写<code>stopPacketReceiver</code>来发送Ctrl-C信号</p>
<pre><code>def stopPacketReceiver(ssh, ssh_stdin, ssh_stdout, ssh_stderr):
print('\x03', file=ssh_stdin) # Send Ctrl-C signal
print(ssh_stdout.read()) #print the stdout
print(ssh_stderr.read())
</code></pre>