sync errors

This commit is contained in:
2026-05-10 16:22:43 +02:00
parent 0831ffed42
commit 08b99ab340
2 changed files with 14 additions and 2 deletions
+10 -1
View File
@@ -1,12 +1,15 @@
import io
import logging
import posixpath
import socket
import stat
from dataclasses import dataclass
from pathlib import Path
import paramiko
CONNECT_TIMEOUT = 30 # seconds for TCP + SSH handshake
import db
from config import SFTPConfig
@@ -46,12 +49,18 @@ def get_key_fingerprint(pem: str) -> str | None:
def _make_transport(cfg: SFTPConfig) -> paramiko.Transport:
transport = paramiko.Transport((cfg.host, cfg.port))
log.debug("Opening TCP connection to %s:%s", cfg.host, cfg.port)
sock = socket.create_connection((cfg.host, cfg.port), timeout=CONNECT_TIMEOUT)
transport = paramiko.Transport(sock)
transport.banner_timeout = CONNECT_TIMEOUT
transport.handshake_timeout = CONNECT_TIMEOUT
log.debug("Starting SSH handshake")
if cfg.auth_method == "key" and cfg.key:
key = _load_private_key(cfg.key)
transport.connect(username=cfg.user, pkey=key)
else:
transport.connect(username=cfg.user, password=cfg.password)
log.debug("SSH authenticated")
return transport