- ru
- Language: en
- Documentation version: latest
Ввод пароля
При подключении к оборудованию вручную, как правило, пароль также вводится вручную.
При автоматизации подключения надо решить, каким образом будет передаваться пароль:
Запрашивать пароль при старте скрипта и считывать ввод пользователя. Минус в том, что будет видно, какие символы вводит пользователь
Записывать логин и пароль в каком-то файле (это не очень безопасно).
Как правило, один и тот же пользователь использует одинаковый логин и пароль для подключения к оборудованию. И, как правило, будет достаточно запросить логин и пароль при старте скрипта, а затем использовать их для подключения на разные устройства.
К сожалению, если использовать input()
, набираемый пароль будет
виден. А хотелось бы, чтобы при вводе пароля вводимые символы не
отображались.
Модуль getpass
Модуль getpass позволяет запрашивать пароль, не отображая вводимые символы:
In [1]: import getpass
In [2]: password = getpass.getpass()
Password:
In [3]: print(password)
testpass
Переменные окружения
Еще один вариант хранения пароля (а можно и пользователя) - переменные окружения.
Например, таким образом логин и пароль записываются в переменные:
$ export SSH_USER=user
$ export SSH_PASSWORD=userpass
А затем в Python считываются значения в переменные в скрипте:
import os
USERNAME = os.environ.get('SSH_USER')
PASSWORD = os.environ.get('SSH_PASSWORD')