feat: secure password/passphrase input via getpass; interactive SSH auth menu (key/passphrase/password/temp-key); fix missing do_transfer call

This commit is contained in:
2026-05-22 23:42:52 +04:00
parent 4d6c7ef506
commit 6d6418c059
3 changed files with 18 additions and 4 deletions
+13
View File
@@ -112,6 +112,19 @@ def prompt(text, default=None):
sys.exit(130)
def prompt_password(text):
"""Скрытый ввод пароля/passphrase. В pipe — обычный prompt с предупреждением."""
import getpass
try:
return getpass.getpass(f"{yellow('')} {text} ")
except EOFError:
print(f"{yellow('')} Ввод пароля в pipe не поддерживается скрытым режимом. Используем обычный ввод.")
return prompt(text)
except KeyboardInterrupt:
print(f"\n{yellow('')} Прервано пользователем (Ctrl+C)")
sys.exit(130)
def confirm(text, default="y"):
"""Да/нет с обработкой EOF. В pipe — возвращает default."""
yn = "Y/n" if default.lower() == "y" else "y/N"