sync errors
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user