Импорт KeePass БД паролей в KWallet

    Всем привет.

    На предприятии где а работаю очень любат всякие штучки для «безопасности» и к сожалению все по винду. Но вот незадача, у меня стоит линукс а мне прислали пароли в БД для KeePass (заметка: не хочу ставить mono приложение KeePass под линукс). Windows виртуальная машина стоит, но держать ее открытой всегда не охота, всетаки память отъедает которой и так не хватает. Вот тогда-то у меня и родилась идея перенести все пароли из этой базы данных для KeePass в мой KWallet.

    Кстати, для тех кто не знаком с KWallet немного опишу его. Это программа которая входит в стандартную поставку KDE и предназначена для хранения секретной информации которой пользуются KDE приложения. Здесь у меня хранятся пароли на различных сайтах, ключи доступа и т.п. Иначе говоря это тоже самое что KeePass но под Линукс. И есть одно из существенных преимуществ это то что мне не надо руками копи-пастить пароли в поля для ввода логина и пароля, а программы сами это достают из моего Бумажника, единственное что просят ввести пароль для открытия бумажника если он закрыт. Очень удобно, тем более что это прекрасно интегрируется с приложениями. И я не удивлюсь если Microsoft это вскоре, как и все остальное, скопирует к себе в винду.

    Итак продолжим. перенос паролей я подумал сделать как можно проще, а именно экспортировать пароли из KeePass в XML, применить трансформацию в формат XML удобоваримый KWallet и потом импортировать в мой бумажник. Подумал-сделал, тем более что эту статью я пишу дольше чем писал XSLT преобразование.

    Кстатит вот оно:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
      <xsl:template match="/">
          <wallet name="kdewallet">
    	<xsl:for-each select="KeePassFile/Root//Group">
    	  <folder name="{Name}">
    	    <xsl:for-each select="Entry">
    	      <map name="{String[Key/text() = 'Title']/Value}">
    		  <mapentry name="{String[Key/text() = 'UserName']/Value}"><xsl:value-of select="String[Key/text() = 'Password']/Value"/></mapentry>
    	      </map>
    	    </xsl:for-each>
    	  </folder>
    	</xsl:for-each>
          </wallet>
      </xsl:template>
    </xsl:stylesheet>
    


    А для преобразования я использовал xsltproc вот этой командой:
    xsltproc -o kwallet.xml ./keepas2kwallet.xsl ./keepass.xml
    


    Полученный файлик kwallet.xml успешно импортировал в мой бумажник. И теперь все пароли из KeePass прекрасно живут в моем KWallet бумажнике.

    А структура импортированного бумажника получается такой:
    1. KeePass группа это отдельный каталог в KWallet
    2. KeePass заголовок записи это имя соответсвия
    3. KeePass имя пользователя и пароль хранятся в соответствии как есть.



    Заметка 1: Хочу подметить что это я сделал для того чтобы пользоваться только нативными приложениями линукс, а не виндовыми программами портированными под Линукс.
    Заметка 2: Эту статью я пишу чтобы поделиться с сообществом результатом моего труда, вдруг кому пригодится.

    UPD: Эта статья не направлена на рекламу KWallet, и я не пытаюсь кого-нибудь переубедить — дело вкуса. Мне нравится KWallet, я им пользуюсь и поэтому предлагаю вариант импорта. Кто не согласен — Ваше мнение и мое мнение Вы ну никак не поменяете. Не нравится не пользуйтесь. А ежели нравится то...

    Пользуйтесь наздоровье
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 11

      +15
      Но ведь есть нативный KeepassX для Linux
        +6
        Отличный вариант. А вообще под линукс есть нативный KeePassX, написанный на Qt
          0
          1. kdbx пока не открывает
          2. KWallet стандартная программа для управления паролями с интерграцией с приложениями чем KeePassX не может похвастаться. Не делать же Open->Find->Copy->Paste to form, а просто goto form->Login->Profit
            0
            1. KeepassX 2.0 Alpha понимает. Alpha 4 стоит, полёт нормальный.
              0
              1. gitorious.org/keepassx который 2, сыроват, но открывает, пользуюсь им с пол года уже. (для арчеводов aur.archlinux.org/packages/keepassx2-git/)
              2. интеграция хороша, но порой нужен доступ к данным с мобильного, keepassx есть под андроид. play.google.com/store/apps/details?id=keepass2android.keepass2android_nonet
                +2
                KeePassX использую несколько лет, в том числе и под android. Отличная штука.
                Даже не знаю, в какой каменный век попаду при утере базы…
                  0
                  KeePassX да несколько лет, а на вторую версию с пол года перешел.
                    0
                    Вторую не пробовал.
            0
            Пользуюсь хранилищем паролей в браузере для сайтов, KWallet для паролей программ из KDE и KeePassX для всего остального :) Зоопарк, конечно, но пока не вижу способа все это объединить. А может и не надо :)
            Кстати, KeePassX может импортировать пароли из формата KWallet. Экспортировать, к сожалению, нет.
              0
              Вот поэтому мне и пришлось писать этото XSLT.
              0
              Извиняюсь за некопропостинг, но как у вас сейчас отношения с KWallet? Меня раздражает то, что не могу настроить синхронизацию паролей между разными инстансами KWallet (комп на работе, комп дома, два ноута). Через синхронизацию файла работает отвратно — постоянно перезатирает, вот здесь моё негодуэ по этому поводу: bugs.kde.org/show_bug.cgi?id=403648

              А других способов не нашёл, в том числе и как заменить KWallet в KDE на что-то другое чтобы сохранить интеграцию с приложениями.

              Было бы здорово настроить хотя бы по крону импорт-экспорт в KeePass — может у Вас уже есть такой скриптек?

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое