From 9b005095b96d7b2728a69f1dbe4b24229a3b9298 Mon Sep 17 00:00:00 2001 From: Stitch505 <–Gleb@stitch505.su> Date: Fri, 22 May 2026 23:07:21 +0400 Subject: [PATCH] fix: scp uses -P (capital) for port; unify ssh_opts variable for remote commands --- transfer/transfer.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/transfer/transfer.py b/transfer/transfer.py index 476c7dd..d016cf7 100644 --- a/transfer/transfer.py +++ b/transfer/transfer.py @@ -60,16 +60,22 @@ def do_transfer(): info(f"Выбран метод переноса: {method}") - ssh_opts = f"-p {port}" key_path = st.get("ssh_key") + # Предварительная проверка уже сделана в pick_or_setup_ssh_key, повторно не делаем + + # Базовые SSH-опции (ssh/rsh/rsync) + ssh_opts = f"-p {port}" if key_path and os.path.isfile(key_path): ssh_opts += f" -i '{key_path}'" info(f"Используем SSH-ключ: {key_path}") - # Предварительная проверка уже сделана в pick_or_setup_ssh_key, повторно не делаем if method == "scp": + # scp использует заглавную -P для порта (строчная -p = preserve timestamps) + scp_opts = f"-P {port}" + if key_path and os.path.isfile(key_path): + scp_opts += f" -i '{key_path}'" info("Копируем архив через scp ...") - r = run(f"scp {ssh_opts} {archive_path} {user}@{host}:{remote_path}", check=False) + r = run(f"scp {scp_opts} {archive_path} {user}@{host}:{remote_path}", check=False) else: info("Копируем архив через rsync ...") r = run(f"rsync -avz --progress -e 'ssh {ssh_opts}' {archive_path} {user}@{host}:{remote_path}", check=False)