Пост

Интеграция KeePass с SSH (SSH-Key), RDP, SFTP клиентами

Интеграция KeePass с SSH (SSH-Key), RDP, SFTP клиентами

KeePass Password Safe — кроссплатформенная свободная программа для хранения паролей, распространяемая по лицензии GPL

Для интеграции KeePass используется настройки URL Overrides

Подключение из KeePass по RDP без ввода IP, логина, пароля

Так как дефолтный RDP-клиент mstsc не поддерживает передачу логина/пароля из командной строки, воспользуемся прослойкой в виде утилиты Remote Desktop Plus. Скачиваем и устанавливаем её.

Переходим к настройке KeePass

Сервис > Параметры > Интеграция > Переопределение URL

Параметры

Переопределение URL

Добавляем новую схему:

1
2
- Схема: rdp
- Переопределение: cmd://rdp /v:{URL:RMVSCM} /u:{USERNAME} /p:{PASSWORD}

Добавить схему

Применяем изменения, переходим в KeePass и добавляем новую запись или изменяем ранее добавленную.

В поле URL-ссылка прописываем запись в виде: rdp://%ip%:%port%

URL-ссылка

Теперь если выделить эту запись и нажать сочетание клавиш Ctrl+U откроется RDP-сессия, IP/логин/пароль подтянется из KeePass.

Подключение из KeePass по SSH без ввода IP, логина, пароля

Скачиваем Putty и устанавливаем его, что бы в системе прописались нужные переменные.

Если пользуетесь Kitty (форк Putty), переименовываем putty.exe в _putty.exe в директории C:\Program Files\PuTTY, скачиваем Kitty, переименовываем kitty.exe в putty.exe и перемещаем его в C:\Program Files\PuTTY

Переходим к настройке KeePass

Сервис > Параметры > Интеграция > Переопределение URL

В блоке Встроенные переопределения отключаем схему SSH и добавляем новую схему:

1
2
- Схема: ssh
- Переопределение: cmd://"putty.exe" -ssh {USERNAME}@{URL:RMVSCM} -P {T-REPLACE-RX:/{URL:PORT}/^-1$/22/} -pw "{PASSWORD}"

Добавить схему

Применяем изменения, переходим в KeePass и добавляем новую запись или изменяем ранее добавленную.

В поле URL-ссылка прописываем запись в виде: ssh://%ip%:%port%

Причем если SSH-порт стандартный (22/tcp), то его можно не указывать.

URL-ссылка

Теперь если выделить эту запись и нажать сочетание клавиш Ctrl+U откроется SSH-сессия в Putty либо Kitty, IP/логин/пароль подтянется из KeePass.

Подключение из KeePass по SSH, используя SSH-ключ (сертификат), который хранится в KeePass

Скачиваем плагин для KeePass - KeeAgent

Распаковываем его в C:\Program Files (x86)\KeePass Password Safe 2\Plugins и перезапускаем KeePass.

Переходим к настройке KeePass

Сервис > Параметры > KeeAgent

Кроме отмеченных по умолчанию пунктов, отмечаем:

  • Always require user confirmation when a client program requests to use a key
  • Enable agent for Windows OpenSSH (experimental)

Отмечаем интеграции (предварительно создать каталог C:\Temp\):

  • Create Cygwin compatible socket file
    Path: C:\Temp\cyglockfile
  • Create msysGit compatible socket file
    Path: C:\Temp\syslockfile

Параметры

Применяем изменения, переходим в KeePass и добавляем новую запись или изменяем ранее добавленную.

Переходим во вкладку Дополнительно, и в разделе Прикрепляемые файлы добавляем приватный SSH-ключ, который был сгенерирован утилитой PuttyGen. (Если у вас не настроена авторизация по SSH-ключу, в интернете много статей по настройке)

Переходим во вкладку “Дополнительно”

Переходим во вкладку KeeAgent и отмечаем:

  • Allow KeeAgent to use this entry

Переходим во вкладку “KeeAgent”

Применим изменения, переходим в KeePass, выделяем добавленную запись и нажимаем Ctrl+U

Откроется новая SSH-сессия в Putty либо Kitty, SSH-ключ подтянется из KeePass.

Так же появится запрос об использовании SSH-Ключа, а после подключения - уведомление от KeeAgent.

Запрос об использовании SSH-Ключа

Уведомление от KeeAgent

Причем теперь можно подключаться по SSH с использованием SSH-ключа из сторонних SSH-клиентов (Windows OpenSSH, Putty, Kitty, mRemoteNG) и SSH-ключ будет подтягиваться из KeePass.

Запрос об использовании SSH-Ключа

Если KeePass заблокирован, то будет появляться окно ввода пароля для KeePass

Окно разблокировки KeePass

К сожалению, SSH-клиенты xShell и SecureCRT не поддерживаются для использования схемы KeePass + SSH ключ, т.к. они используют свои агенты для хранения SSH ключей.

Подключение из KeePass по SFTP при помощи WinSCP

Скачиваем и устанавливаем WinSCP

Переходим к настройке KeePass

Сервис > Параметры > Интеграция > Переопределение URL

Добавляем новую схему:

1
2
- Схема: scp
- Переопределение: cmd://"{ENV_PROGRAMFILES_X86}\WinSCP\WinSCP.exe" {BASE:SCM}://{USERNAME}:{PASSWORD}@{BASE:HOST}:{T-REPLACE-RX:/{BASE:PORT}/-1//}{BASE:PATH}

Добавить схему

Применяем изменения, переходим в KeePass и добавляем новую запись или изменяем ранее добавленную.

В поле URL-ссылка прописываем запись в виде: scp://%ip%:%port%

URL-ссылка

Теперь если выделить эту запись и нажать сочетание клавиш Ctrl+U, откроется SFTP-сессия в SFTP-клиенте WinSCP, IP/логин/пароль подтянется из KeePass. А если настроена авторизация по SSH-ключу, то из KeePass подтянется SSH-ключ.

Таким же образом можно настроить интеграцию KeePass с другими протоколами / клиентами: FTP, VNC и др.

Авторский пост защищен лицензией CC BY 4.0 .