Менеджер паролей pass

Pass — утилита, которая используется для шифрования паролей. Утилита может пригодиться при настройке файла .env для скрипта get_data.sh, чтобы передавать пароли в зашифрованном виде при обращении к БД по сети.

В этом разделе приведена инструкция для установки и настройки утилиты pass.

Установка для ОС CentOS

Есть два варианта установки pass:

  1. Машина, на которую устанавливается утилита, имеет выход в интернет.

  2. Выход в интернет отсутствует.

Способ 1 ― интернет есть

Поскольку утилита pass не входит в состав стандартных репозиториев ОС CentOS, для ее установки необходимо подключение дополнительного репозитория EPEL (Extra Packages for Enterprise Linux) ― открытое бесплатное хранилище пакетов от Fedora.

В версиях CentOS ниже 9 версии иногда требуется ввести следующие команды для обеспечения работы установщика пакетов yum:

sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*_
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*_
sudo dnf update -y_
  • Установка дополнительного репозитория:

sudo yum install epel-release
  • Установка pass:

sudo yum install pass_

Система отобразит предупреждение о том, что потребуется установка дополнительных пакетов. Согласитесь с ним (y).

Пакет будет установлен со всеми необходимыми зависимостями.

Способ 2 ― интернет отсутствует

Разверните на стенде виртуальную машину с необходимой версией CentOS. В данном случае это CentOS 8.5.2111.

Версию ОС можно посмотреть командой:

cat /etc/os-release_

Повторите шаги, описанные для Способа 1:

sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*_
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*_
sudo dnf update -y_
  • Установка дополнительного репозитория:

sudo yum install epel-release

Перечень пакетов, необходимых для установки утилиты pass:

  • qrencode-libs-3.4.4-5.el8.x86_64.rpm

  • qrencode-3.4.4-5.el8.x86_64.rpm

  • qrencode-libs-0.13-8.el8.x86_64.rpm

  • git-core-2.27.0-1.el8.x86_64.rpm

  • pass-1.7.3-7.el8.noarch.rpm

Для скачивания этих пакетов необходима утилита yumdownloader, которая входит в пакет yum-utils.

Установите пакет yum-utils:

sudo yum install yum-utils_

После чего скачайте вышеперечисленные пакеты в текущий каталог:

sudo yumdownloader --resolve qrencode-libs_
sudo yumdownloader --resolve tree_
sudo yumdownloader --resolve pass_

Отправьте скачанные пакеты адресату, загрузите их на машину Idea Hub без выхода в интернет и установите следующими командами:

sudo rpm -Uvh qrencode-libs-3.4.4-5.el8.x86_64.rpm_
sudo rpm -Uvh qrencode-3.4.4-5.el8.x86_64.rpm_
sudo rpm -Uvh xclip-0.13-8.el8.x86_64.rpm_
sudo rpm -Uvh git-core-2.27.0-1.el8.x86_64.rpm_
sudo rpm -Uvh tree-1.7.0-15.el8.x86_64.rpm_
sudo rpm -Uvh pass-1.7.3-7.el8.noarch.rpm_

Настройка pass

В данном примере рассматривается настройка утилиты pass от пользователя cron_fetch, который является стандартным при установке ПО Idea Hub.

Важно. Настройку pass для конкретного пользователя нельзя производить при переходе под этого пользователя через команду su. Для корректной настройки pass обязательным условием является вход в систему под логином пользователя, который будет использовать утилиту. В данном примере это пользователь cron_fetch.

Важно. Если зайти под пользователем не представляется возможным, кроме как через команду su, то при генерации GPG-ключа вы столкнётесь с ошибкой доступа. Потому что утилита будет пытаться обратиться к оригинальному пользователю, запустившему терминал.

Перед генерацией GPG-ключа введите команду screen.

Зайдите в систему под пользователем cron_fetch.

Создайте приватный и публичный ключи:

gpg --full-generate-key_
  1. RSA & RSA

    • 4096

    • 0 (0 - бессрочно, 10n - 10 дней, 10w - 10 недель, 10m - 10 месяцев, 3y - 3 года)

    • Real name: cron_fetch

После заполнения всех необходимых полей установщик дважды запросит установку мастер-пароля для доступа к хранилищу.

Просмотреть свои ключи можно командой:

gpg --list-secret-keys --keyid-format LONG_

Пример вывода:

      sec   rsa4096/53703779705153A4 2024-06-18 [SC]
            72812BA187831602F3CC881C53703779705153A4
      uid               [  абсолютно ] cron_fetch
      ssb   rsa4096/8F30EE1D486DCD1E 2024-06-18 [E]

Используя свой GPG-ключ ID, можно инициировать свое хранилище:

pass init 53703779705153A4_

Пример вывода:

Password store initialized for 53703779705153A4

Теперь можно помещать пароли в хранилище паролей RSA4096-encrypted.

Пример для пользователя postgres:

pass insert postgres_

Будет дважды запрошен пароль для пользователя postgres.

Просмотреть список пользователей, для которых в хранилище сохранены пароли, можно командой:

pass ls_

Для просмотра пароля в cleartext:

pass show postgres_

Система запросит мастер-пароль и покажет пароль для пользователя postgres.

Настройка интеграции pass с Idea Hub

Для того чтобы Idea Hub при обращении к серверу БД использовал хранилище паролей и передавал по сети пароли в зашифрованном виде, обновите конфигурационный файл сервера Idea Hub.

Для этого добавьте в файл /var/www/ideahub/scripts/orc-data-fetch/.env следующие настройки (для БД LTOOLS):

USE_PASS=1
DB_PASS_LTOOLS_PROD=postgres

Last updated

Was this helpful?