fix: scp uses -P (capital) for port; unify ssh_opts variable for remote commands
This commit is contained in:
@@ -60,16 +60,22 @@ def do_transfer():
|
|||||||
|
|
||||||
info(f"Выбран метод переноса: {method}")
|
info(f"Выбран метод переноса: {method}")
|
||||||
|
|
||||||
ssh_opts = f"-p {port}"
|
|
||||||
key_path = st.get("ssh_key")
|
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):
|
if key_path and os.path.isfile(key_path):
|
||||||
ssh_opts += f" -i '{key_path}'"
|
ssh_opts += f" -i '{key_path}'"
|
||||||
info(f"Используем SSH-ключ: {key_path}")
|
info(f"Используем SSH-ключ: {key_path}")
|
||||||
# Предварительная проверка уже сделана в pick_or_setup_ssh_key, повторно не делаем
|
|
||||||
|
|
||||||
if method == "scp":
|
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 ...")
|
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:
|
else:
|
||||||
info("Копируем архив через rsync ...")
|
info("Копируем архив через rsync ...")
|
||||||
r = run(f"rsync -avz --progress -e 'ssh {ssh_opts}' {archive_path} {user}@{host}:{remote_path}", check=False)
|
r = run(f"rsync -avz --progress -e 'ssh {ssh_opts}' {archive_path} {user}@{host}:{remote_path}", check=False)
|
||||||
|
|||||||
Reference in New Issue
Block a user