How to run KeeChallenge (KeePass plugin) for Yubikey under Ubuntu Linux with Mono

KeeChallenge is a KeePass plugin, which allows you to protect your password database with a second auth key. It implements a HMAC-SHA1 challenge-response where the key is saved on a Yubikey.

KeePass runs quite well under Linux with mono. However also the KeeChallenge plugin works under Mono, but you have to map some .dll to .so libraries, which I will describe here.

Requirements

Of course you need KeePass

sudo apt-get install keepass2

well you don't have to use this package, but I use the paths which the kepass2 package creates.

You need also the Yubico PPA:

sudo add-apt-repository ppa:yubico/stable
sudo apt-get update

after that you have to install the required packages:

sudo apt-get install libjson0 libjson-c2 libyubikey0 libykpers-1-1

Alternatively instead of adding the ppa and installing the libyubikey0 libykpers-1-1 packages you can fetch the required libraries libykpers-1.so.1 and libyubikey.so.0 from here, build them and copy them into a library path, where mono will find them like /usr/lib/. Well I don't test this.

EDIT: There are also some mono dependencies for the plugin (thanks to wtip):

sudo apt-get install mono-gmcs libmono-microsoft8.0-cil libmono-system-runtime2.0-cil libmono-i18n2.0-cil libmono-oracle2.0-cil

Install KeeChallenge

Fetch KeeChallenge from SourceForge. Copy the included KeeChallenge.dll to /usr/lib/keepass2/plugins/. You don't need the 32bit or 64bit subdirectories.

Then create a text file in the same directory as KeeChallenge.dll called KeeChallenge.dll.config (e.g. /usr/lib/keepass2/plugins/KeeChallenge.dll.config) with following content:

This will map the .dll to it's corresponding .so files.
After that it should already work.

Environment

  • KeePass 2.28
  • KeeChallenge 1.2
  • Ubuntu 14.04
  • libykpers-1-1 1.16.0
  • libyubikey0 1.12-1
  • Mono 3.2.8
 
 
 

User login