Книга: PyNEng
Назад: 19. Подключение к оборудованию
Дальше: Pexpect

Ввод пароля

Ввод пароля

При подключении к оборудованию вручную, как правило, пароль также вводится вручную.

При автоматизации подключения надо решить, каким образом будет передаваться пароль:

  • запрашивать пароль при старте скрипта и считывать ввод пользователя
    • минус в том, что будет видно, какие символы вводит пользователь
  • записывать логин и пароль в каком-то файле
    • это не очень безопасно

Как правило, один и тот же пользователь использует одинаковый логин и пароль для подключения к оборудованию.

И, как правило, будет достаточно запросить логин и пароль при старте скрипта, а затем использовать их для подключения на разные устройства.

К сожалению, если использовать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') 
Назад: 19. Подключение к оборудованию
Дальше: Pexpect