Внезапно не про ИИ заметка. В общем есть одна консольная программка, которая просит вводить TOTP коды, есть Яндекс.Ключ (режим TOTP) на айфоне на котором настроен генератор одноразовых паролей, есть KeePassXC у которого наличествует специальный механизм генерации TOTP.
Проблема такая: чтобы воспользоваться той программкой консольной нужно находить телефон, запускать Яндекс.Ключ, читать одноразовый пароль, вводить его в консольку, жать интер. Почти каждый день приходится это делать, в общем мне это надоело и решил немного автоматизировать данный вопрос.
Или я сломаю твой секреееет
Для начала потребовалось заполучить секретный ключик base32 из генератора Яндекс.Ключ, сделать это было проще чем я думал, в меню настроек ⚙️ есть строка "Сохранить в файл" после нажатия на которую вылезает формочка с выбором куда сохранить, на Android проще всего сохранить на карту памяти, а на IOS пришлось выбрать iCloud.
Система создаст текстовый файл
key_backup (из которого при желании можно восстановиться) вот такого примерно вида:[
{
"name": "system 1",
"secret": "xxx",
"techInfo": "otpauth://totp/url"
},
{
"name": "system 2",
"secret": "xxx",
"techInfo": "otpauth://totp/url"
}
]
Этот файл через просмотрщик открываем, ищем json-объект нужной системы, в нём находим поле
secret, оно нам пригодится на следующем шаге.Да просто захотел тебе сказать, свой пароль от почты, барабака35, пиши, забудешь точно
Теперь заходим в KeePassXC, находим нужную учётку для которой я генерил этот одноразовый пароль через Яндекс.Ключ, на ней правой кнопкой мышки жму и выбираю в менюшке "TOTP" там выбираем "Настроить TOTP...", откроется модалка.
Сверху в инпуте "Секретный ключ:" пишем то, что мы нашли в
key_backup, остальное по дефолту, нажимаем "Ок" внизу, модалка закроется.Теперь мы можем либо комбинацией клавиш "Ctrl + T" скопировать код в буфер, либо через менюшку "TOTP" > "Скопировать TOTP".
Не хочешь - не верь мне
Настроить это полдела, давайте проверим что всё ок работает, открываем Яндекс.Ключ и KeePassXC (Ctrl + Shift + T), смотрим, сравниваем, если циферки одинаковые, то всё настроено правильно и можно дальше думать про интеграцию.
Если кратко, то есть консольный тул
keepassxc-cli, через неё можно открыть базу данных и запросить TOTP нужной записи, делаем это так:keepassxc-cli show -t ./password.kdbx "Группа/Учётка"
Если на базе есть пароль то отобразится приглашение его ввести, ну а дальше вашу фантазию уже ничего останавливает.
Кстати, в интерфейсе можно посмотреть правильный путь, главное после того как скопируете его убрать пробелы перед и после "/", ещё нужно убрать "Корень/" вначале, плюс если в имени записи или группы есть пробелы надо будет добавить защиту например: "Группа/Вложенная\ группа/Учётка\ с\ пробелом"
Надеюсь эта маленькая заметка вам будет так же полезна как и мне.