模拟ssh实现远程执行命令

Posted zhouhao123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟ssh实现远程执行命令相关的知识,希望对你有一定的参考价值。

服务端必须满足至少三点:
1. 绑定一个固定的ip和port
2. 一直对外提供服务,稳定运行
3. 能够支持并发
技术图片
from socket import *

client = socket(AF_INET, SOCK_STREAM)
client.connect((127.0.0.1, 8081))

# 通信循环
while True:
    cmd=input(>>: ).strip()
    if len(cmd) == 0:continue
    client.send(cmd.encode(utf-8))
    cmd_res=client.recv(1024000)
    print(cmd_res.decode(gbk))

client.close()
客户端
技术图片
服务端必须满足至少三点:
1. 绑定一个固定的ip和port
2. 一直对外提供服务,稳定运行
3. 能够支持并发
from socket import *
import subprocess

server = socket(AF_INET, SOCK_STREAM)
server.bind((127.0.0.1, 8081))
server.listen(5)

# 链接循环
while True:
    conn, client_addr = server.accept()
    print(client_addr)

    # 通信循环
    while True:
        try:
            cmd = conn.recv(1024) #cmd=b‘dir‘
            if len(cmd) == 0: break  # 针对linux系统
            #subprocess.Popen 执行系统命令
            obj=subprocess.Popen(cmd.decode(utf-8),
                             shell=True,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE
                             )
            stdout=obj.stdout.read()
            stderr=obj.stderr.read()
            print(len(stdout) + len(stderr))
            conn.send(stdout+stderr)
        except ConnectionResetError:
            break

    conn.close()

server.close()
服务端

 

以上是关于模拟ssh实现远程执行命令的主要内容,如果未能解决你的问题,请参考以下文章

模拟远程SSH执行命令的编解码说明

102 模拟ssh远程执行命令

100 模拟ssh远程执行命令

python 模拟 ssh 执行远程命令

免密码SSH远程执行命令

模拟ssh远程命令执行