Интеграция KeePass с SSH (SSH-Key), RDP, SFTP клиентами
KeePass Password Safe — кроссплатформенная свободная программа для хранения паролей, распространяемая по лицензии GPL
Для интеграции KeePass используется настройки URL Overrides
Подключение из KeePass по RDP без ввода IP, логина, пароля
Так как дефолтный RDP-клиент mstsc
не поддерживает передачу логина/пароля из командной строки, воспользуемся прослойкой в виде утилиты Remote Desktop Plus. Скачиваем и устанавливаем её.
Переходим к настройке KeePass
Сервис > Параметры > Интеграция > Переопределение URL
Добавляем новую схему:
1
2
- Схема: rdp
- Переопределение: cmd://rdp /v:{URL:RMVSCM} /u:{USERNAME} /p:{PASSWORD}
Применяем изменения, переходим в KeePass и добавляем новую запись или изменяем ранее добавленную.
В поле URL-ссылка
прописываем запись в виде: rdp://%ip%:%port%
Теперь если выделить эту запись и нажать сочетание клавиш 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), то его можно не указывать.
Теперь если выделить эту запись и нажать сочетание клавиш 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-Ключа
Причем теперь можно подключаться по SSH с использованием SSH-ключа из сторонних SSH-клиентов (Windows OpenSSH, Putty, Kitty, mRemoteNG) и SSH-ключ будет подтягиваться из KeePass.
Запрос об использовании SSH-Ключа
Если 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%
Теперь если выделить эту запись и нажать сочетание клавиш Ctrl+U
, откроется SFTP-сессия в SFTP-клиенте WinSCP, IP/логин/пароль подтянется из KeePass. А если настроена авторизация по SSH-ключу, то из KeePass подтянется SSH-ключ.
Таким же образом можно настроить интеграцию KeePass с другими протоколами / клиентами: FTP, VNC и др.