feat: SSH key discovery and connectivity check via pick_or_setup_ssh_key

This commit is contained in:
2026-05-22 20:27:33 +04:00
parent 003a251fbb
commit 15bb88527d
3 changed files with 204 additions and 12 deletions
+15 -4
View File
@@ -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()