fix: clear stale ssh_key from state when user declines keygen; add guard for missing key in do_transfer
This commit is contained in:
@@ -72,6 +72,11 @@ def do_transfer():
|
||||
if method == "scp":
|
||||
# scp использует заглавную -P для порта (строчная -p = preserve timestamps)
|
||||
# Добавляем SSH-опции чтобы избежать зависания и silent fail
|
||||
if not (key_path and os.path.isfile(key_path)):
|
||||
warn("SSH-ключ не найден. scp с BatchMode=yes не может использовать пароль.")
|
||||
info("Варианты: 1) Сгенерируйте ключ через resume; 2) Используйте rsync; 3) Перенесите вручную.")
|
||||
state.set_error("TRANSFER", "", "SSH key missing for scp with BatchMode", suggestion="Запустите docker-migrate --resume и сгенерируйте временный SSH-ключ")
|
||||
raise RuntimeError("SSH-ключ отсутствует. Автоматический перенос невозможен без ключа.")
|
||||
scp_opts = f"-P {port} -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new -o BatchMode=yes"
|
||||
if key_path and os.path.isfile(key_path):
|
||||
scp_opts += f" -i '{key_path}'"
|
||||
|
||||
Reference in New Issue
Block a user