You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过单次SSH登录在远程RPi170执行4项Python3任务?

单次SSH会话完成多任务的实现方案

核心思路

复用单个SSH连接会话,在同一条连接内依次完成文件传输和命令执行,彻底避免多次建立连接触发的安全告警。

具体实现(基于Python的paramiko库)

  1. 先安装依赖库:
pip install paramiko
  1. 编写复用连接的代码:
import paramiko

def run_single_session_tasks():
    # 替换成你的服务器信息和文件路径
    server_info = {
        "hostname": "RPi170",
        "username": "你的用户名",
        "password": "你的密码"  # 推荐用密钥认证替代密码,更安全
    }
    file_paths = {
        "local_mp4": "/本地路径/视频文件.mp4",
        "remote_mp4": "/RPi170路径/视频文件.mp4",
        "local_jpg": "/本地路径/图片文件.jpg",
        "remote_jpg": "/RPi170路径/图片文件.jpg",
        "touch_file": "/RPi170路径/要创建的空文件.txt",
        "chown_target": "/RPi170路径/要改权限的文件或目录",
        "chown_user_group": "目标用户:目标用户组"
    }

    # 建立单次SSH连接
    ssh_conn = paramiko.SSHClient()
    ssh_conn.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
        ssh_conn.connect(**server_info)
        
        # 用SFTP完成两次文件传输(复用当前SSH连接)
        sftp = ssh_conn.open_sftp()
        sftp.put(file_paths["local_mp4"], file_paths["remote_mp4"])
        sftp.put(file_paths["local_jpg"], file_paths["remote_jpg"])
        sftp.close()
        
        # 在同一个连接内执行touch命令
        ssh_conn.exec_command(f'touch {file_paths["touch_file"]}')
        # 执行chown命令
        ssh_conn.exec_command(f'chown {file_paths["chown_user_group"]} {file_paths["chown_target"]}')

        print("所有任务已通过单次SSH会话完成")
    finally:
        # 确保连接关闭
        ssh_conn.close()

if __name__ == "__main__":
    run_single_session_tasks()

关键要点

  • 所有操作都基于同一条SSH连接,不会触发多次登录的安全事件
  • 用paramiko内置的SFTP替代独立SCP会话,功能和SCP一致但能复用连接
  • 命令执行通过exec_command方法在已连接的会话内完成,无需重新建立登录

内容的提问来源于stack exchange,提问作者DaveK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:23:19