feat: SSH key discovery and connectivity check via pick_or_setup_ssh_key
This commit is contained in:
+15
-4
@@ -323,10 +323,21 @@ def do_transfer_offer():
|
||||
if not user:
|
||||
user = "root"
|
||||
port = prompt("SSH порт (Enter=22)") or "22"
|
||||
use_key = confirm("Использовать SSH-ключ (иначе — пароль)", default="y")
|
||||
if not use_key:
|
||||
warn("Будет запрошен пароль. Убедитесь, что SSH доступ разрешён по паролю.")
|
||||
port_int = int(port)
|
||||
|
||||
# SSH-диагностика: ищем ключи, проверяем доступ
|
||||
from transfer.ssh import pick_or_setup_ssh_key
|
||||
key_path = None
|
||||
try:
|
||||
key_path = pick_or_setup_ssh_key(host, user, port_int)
|
||||
except RuntimeError:
|
||||
# pick_or_setup уже дал инструкции, останавливаемся
|
||||
return
|
||||
|
||||
if key_path:
|
||||
state.set_stage("TRANSFER", target_host=host, target_user=user, target_port=port_int, ssh_key=key_path)
|
||||
else:
|
||||
state.set_stage("TRANSFER", target_host=host, target_user=user, target_port=port_int)
|
||||
|
||||
state.set_stage("TRANSFER", target_host=host, target_user=user, target_port=int(port))
|
||||
from transfer.transfer import do_transfer
|
||||
do_transfer()
|
||||
|
||||
Reference in New Issue
Block a user