fix: scp uses -P (capital) for port; unify ssh_opts variable for remote commands

This commit is contained in:
2026-05-22 23:07:21 +04:00
parent a4be7c59d9
commit 9b005095b9

View File

@@ -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)