Налаштовуємо URL Overrides в Keepass2


Напевно всі вже й так знають, що завжди добре мати великий і складний пароль. Багато так само знають про менеджери паролів і як зручно, а головне безпечно можна зберігати в них інформацію.
За специфікою моєї роботи мені часто доводиться записувати і зберігати велику кількість паролів та іншої конфіденційної інформації, тому я користуюся Keepass2 — менеджером паролів з вільною ліцензією. Я не стану розповідати про його можливості та переваги перед іншими, все це і так вже обговорювалася не раз. Якщо хто хоче познайомитися докладніше, ось кілька посилань: wiki, оглядова стаття, порівняння з іншими: 1 2.
Замість цього я хотів би розповісти про його цікаву функцію:
Функція називається "URL Overrides", і являє ссобой можливість запускати асоційовані з записами програми і передавати їм дані для аутентифікації прямо з Keepass'а.
Наприклад, ви можете зберігати в keepass'е список учеток для підключення до віддаленого сервера, а в певний момент вибрати потрібну і простим натисненням Ctrl+U, запустити клієнт віддаленого підключення, і миттєво отримати доступ до вашого сервера.
Це дуже зручно, так як всі логіни і паролі не зберігаються аби де, а надійно зашифрованны у вашій базі keepass і передаються програмі-клієнту тільки в момент підключення.
Ідея полягає в тому, що б використовувати Keepass як єдину точку входу на всі віддалені сервера.
Як це працює? (GIF 2.4 M)
Повинен зізнатися, спочатку я планував написати статтю тільки про налаштування keepas на Linux, але по ходу написання накопичилося достатньо матеріалу для Windows-користувачів.
Вирішив не обділяти більшу частину користувачів більш популярною ОС настільки цікавим матеріалом.
Для кожного протоколу я зазначив команди працюють як під windows так і під linux

Отже приступимо:
Створення записів
Для того щоб keepass знав до якого протоколу відповідає ваша запис, вам слід використовувати посилання виду
rdp://server
,
ssh://server
,
ftp://server

Налаштування Keepass2
Для того щоб keepass знав, які і як саме потрібно запускати програми для цих протоколів, вам потрібно налаштувати обробник посилань.
Для цього перейдемо в
Tools --> Options --> Integraion --> URL Overrides...
і налаштуємо протоколи:
SSH

[windows] PuTTY

  • Scheme:
    ssh://
  • Command:
    cmd://"{ENV_PROGRAMFILES_X86}\PuTTY\putty.exe" -ssh "{USERNAME}@{URL:RMVSCM}" -pw {BASE:PORT} -pw "{PASSWORD}"

[linux] OpenSSH Client

  • Scheme:
    ssh://
  • Command:
    cmd://xterm -e sshpass -p {PASSWORD} ssh -o StrictHostKeyChecking=no {USERNAME}@{BASE:RMVSCM}
Вам необхідно встановити пакет
sshpass

Замість
xterm
можете підставити ваш улюблений емулятор терміналу

RDP

[windows] MSTSC

  • Scheme:
    rdp://
  • Command:
    cmd://cmd /c "cmdkey /generic:TERMSRV/{URL:RMVSCM} /user:{USERNAME} /pass:{PASSWORD} && mstsc /v:{URL:RMVSCM} && timeout /t 5 /nobreak && cmdkey /delete:TERMSRV/{URL:RMVSCM}"
За рішення спасибі Valiant з bitcollectors.com

[linux] Remmina

  • Scheme:
    rdp://
  • Command:
    cmd://bash -c "FILE=/tmp/connect.remmina ; echo -en '[remmina]\nname={TITLE}\nprotocol=RDP\nserver={BASE:RMVSCM}\nscale=1\nusername={USERNAME}\npassword="remmina-encode-password.py {PASSWORD}` > $FILE ; remmina -c $FILE ; rm -f $FILE"
так само нам знадобиться встановити невеликий допоміжний скрипт:
curl -o /usr/local/bin/remmina-encode-password.py https://raw.githubusercontent.com/kvaps/keepass2-url-overriddes/master/remmina/remmina-encode-password.py
chmod +x /usr/local/bin/remmina-encode-password.py

VNC

[windows] RealVNC

  • Scheme:
    vnc://
  • Command:
    java -jar "{ENV_PROGRAMFILES}\tightvnc-jviewer.jar" -user="{USERNAME}" -password="{PASSWORD}" {BASE:RMVSCM}
Зберегти
tightvnc-jviewer.jar
на
C:\Program Files\tightvnc-jviewer.jar
.

[linux] Remmina

  • Scheme:
    vnc://
  • Command:
    cmd://bash -c "FILE=/tmp/connect.remmina ; echo -en '[remmina]\nname={TITLE}\nprotocol=VNC\nserver={BASE:RMVSCM}\nscale=1\nusername={USERNAME}\npassword="remmina-encode-password.py {PASSWORD}` > $FILE ; remmina -c $FILE ; rm -f $FILE"
Нам так само потрібно невеликий допоміжний скрипт, про який я писав вище
curl -o /usr/local/bin/remmina-encode-password.py https://raw.githubusercontent.com/kvaps/keepass2-url-overriddes/master/remmina/remmina-encode-password.py
chmod +x /usr/local/bin/remmina-encode-password.py

SAMBA

[windows] Explorer

  • Scheme:
    smb://
  • Command:
    cmd://cmd /c "net use "{URL:RMVSCM}" /user:"{USERNAME}" "{PASSWORD}" && start \\{URL:RMVSCM}"

[linux] Dolphin

  • Scheme:
    smb://
  • Command:
    cmd://dolphin smb://{USERNAME}:{PASSWORD}@{BASE:RMVSCM}'

[linux] Nautilus / Thunar

  • Scheme:
    smb://
  • Command:
    echo '{PASSWORD}' | gvfs-mount smb://{USERNAME}@{BASE:RMVSCM} && nautilus smb://{USERNAME}@{BASE:RMVSCM} 
Для Thunar команда буде така ж, досить замінити
nautilus
на
thunar
.
FTP

[windows] FileZilla FTP Client

  • Scheme:
    ftp://
  • Command:
    cmd://"{ENV_PROGRAMFILES_X86}\FileZilla FTP Client\filezilla.exe" 'ftp://{USERNAME}:{PASSWORD}@{BASE:RMVSCM}'

[windows] Windows Explorer

  • Scheme:
    ftp://
  • Command:
    cmd://"explorer.exe" 'ftp://{USERNAME}:{PASSWORD}@{BASE:RMVSCM}'

[linux] FileZilla FTP Client

  • Scheme:
    ftp://
  • Command:
    cmd://filezilla 'ftp://{USERNAME}:{PASSWORD}@{BASE:RMVSCM}'

[linux] Dolphin

  • Scheme:
    ftp://
  • Command:
    cmd://dolphin ftp://{USERNAME}:{PASSWORD}@{BASE:RMVSCM}'

[linux] Nautilus / Thunar

  • Scheme:
    smb://
  • Command:
    echo '{PASSWORD}' | gvfs-mount ftp://{USERNAME}@{BASE:RMVSCM} && nautilus ftp://{USERNAME}@{BASE:RMVSCM} 
Для Thunar команда буде така ж, досить замінити
nautilus
на
thunar
.
TeamViewer

[windows] TeamViewer

  • Scheme:
    teamviewer://
  • Command:
    "{ENV_PROGRAMFILES_X86}\TeamViewer\TeamViewer.exe" і "{USERNAME}" --Password "{PASSWORD}"

[linux] TeamViewer

  • Scheme:
    teamviewer://
  • Command:
    teamviewer -i "{USERNAME}" --Password "{PASSWORD}"
Winbox

[windows] Winbox

  • Scheme:
    winbox://
  • Command:
    cmd://{ENV_PROGRAMFILES_X86}\winbox.exe '{BASE:RMVSCM}' '{USERNAME}' '{PASSWORD}'
Зберегти
winbox.exe
на
C:\Program Files (x86)\winbox.exe
.

[linux] Winbox

  • Scheme:
    winbox://
  • Command:
    cmd://winbox '{BASE:RMVSCM}' '{USERNAME}' '{PASSWORD}'
Я використовую пакет winbox з AUR.
Висновок
Прикладів я думаю предостатньо. На цьому мабуть все.
Тепер, вибравши потрібну запис і натисніть Ctrl+U, ви відразу підключіться куди потрібно. І вам не доведеться зберігати паролі десь ще.
Для більш екзотичних випадків ви завжди можете написати свій обробник, вам достатньо лише дізнатися параметри запуску потрібної вам програми і відобразити їх у команді.
Пара посилань по темі:
Якщо є якісь побажання/доповнення пишіть в коментарі або на Github.
Дякую за увагу.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.