簡體   English   中英

paramiko.ssh_exception.SSHException:讀取 SSH 協議橫幅時出錯 [Errno 104] 對等 inpyhton 重置連接

[英]paramiko.ssh_exception.SSHException: Error reading SSH protocol banner[Errno 104] Connection reset by peer inpyhton

在列表中給出超過 19 條記錄並通過給定的 sftp 連接詳細信息在循環中傳遞它,但是在運行 19 條記錄后拋出錯誤。 下面是我的代碼。

import paramiko
import sys, os
import time 

lsit1 = ["CBCGG1900089HM", "CBCGG1900090HM", "CBCGG1900091HM", "CBCGG1900092HM", "CBCGG1900093HM", "CBCGG1900094HM", "CBCGG1900095HM", "CBCGG1900096HM", "CBCGG1900097HM", "CBCGG1900098HM", "CBCGG1900099HM", "CBCGG1900100", "CBCGG1900101HM", "CBCGG1900102HM", "CBCGG1900103HM", "CBCGG1900104HM", "CBCGG1900105HM", "CBCGG1900106HM", "CBCGG1900108HM", "CBCGG1900109HM", "CBCGG1900112HM", "CBCGG1900116HM", "CBCGG1900120HM", "CBCGG1900124HM", "CBCGG1900128HM", "CBCGG1900130HM", "CBCGG1900131HM", "CBCGG1900132HM", "CBCGG1900136HM", "CBCGG1900142HM", "CBCGG1900149HM", "CBCGG1900151HM", "CBCGG1900153", "CBCGG1900161", "CBDGG1900001", "BCYG1800038", "BCYG1800041", "BCYG1800045", "BCYG1800047", "BCYG1800049"]
col_id = []

def sftpfun(i):
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(hostname='abc.com',timeout=6000,username='abc',password='xxbb')
        ftp = ssh.open_sftp()
        print("bc")
        ftp.get(f'/CT_Logs/Optima660_Beijing/{i}/image_analysis.csv', f'/home/hvr/sftp_python/Optima660_Beijing {i}/image_analysis.csv')
        ssh.close()
    except:
        col_id.append(f"Optima660_Beijing/{i}")
        with open(f"/home/hvr/sftp_python/logs/sftp_logs.txt", 'w') as f:
            f.write(i)


for i,j in zip(lsit1,range(len(lsit1))):
    sftpfun(i)
    if j%15==0:
        time.sleep(15)

您可以使用單個 SSH/SFTP 連接:

import time

import paramiko

items = [
    "CBCGG1900089HM",
    "CBCGG1900090HM",
    "CBCGG1900091HM",
    "CBCGG1900092HM",
    "CBCGG1900093HM",
    # ...
    "BCYG1800049",
]

with paramiko.SSHClient() as ssh:
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(
        hostname="amecoll01.logon.ds.ge.com",
        timeout=6000,
        username="WSO",
        password="#AMEuser",
    )
    ftp = ssh.open_sftp()
    for i, item in enumerate(items):
        src = f"/CT_Logs/Optima660_Beijing/{item}/image_analysis.csv"
        dest = f"/home/hvr/sftp_python/Optima660_Beijing {item}/image_analysis.csv"
        try:
            ftp.get(src, dest)
            print("OK", dest)
        except Exception as e:
            print("Failed", item, ":", e)
        if i % 15 == 0:
            print("Sleeping...")
            time.sleep(15)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM