如何使用套接字使用 SSH 将用户名和密码发送到开发板?

How to use sockets to send user and password to a devboard, using SSH?

我正在使用套接字连接到 Coral 开发板。我想连接到开发板并执行分类脚本。 每当我执行我的代码(下面的行)时,它都会显示 "In [3]:" 大约 10 秒,好像在等待什么。然后 "In [4]" 出现。这是怎么回事?我已经发送了用户名和密码。

这是我的代码:

import socket

TCP_IP = '172.16.1.11'
TCP_PORT = 22
BUFFER_SIZE = 1024


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))

s.send(b'login')
print(s.recv(BUFFER_SIZE).decode())
s.send(b'mendel')
print(s.recv(BUFFER_SIZE).decode())

s.send(b'Password')
print(s.recv(BUFFER_SIZE).decode())
s.send(b'password')
print(s.recv(BUFFER_SIZE).decode())

这是控制台中显示的内容

In [3]: runfile('C:/Users/Coral/Classification/demo_socket.py', wdir='C:/Users/Coral/Classification')
SSH-2.0-OpenSSH_7.9p1 Debian-10+deb10u2




In [4]:

编辑

当我使用时:

ssh mendel@17​​2.16.1.11

我已经在与 SSH 服务器对话。为什么我不能直接用 python 写登录名和密码而不是用手指写?

我用"paramiko"解决了它。

import paramiko

#Server's data
IP = '172.16.2.47'
PORT = 22
USER = 'mendel'
PASSWORD = 'mendel'

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname = IP, port=PORT, username = USER, password = PASSWORD)


stdin, stdout, stderr = ssh.exec_command('hostname -I')
output = stdout.readlines()
type(output)
print('\n'.join(output))
'''