• 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')