I've installed KeePass2 on my Debian 8, it works but I want to get the db synced with google drive, to have the access from windows machine also.
I followed some posts on the GoogleSyncPlugin site, and managed to compile and run the plugin.
But now I'm facing a new error:

Missing method CreateJsonReader in assembly /home/andrea/.local/share/KeePass/PluginCache/zhSxuuQIPEROKtY8GYLS/DotNetOpenAuth.dll, type System.Runtime.Serialization.Json.JsonReaderWriterFactory  

Seems that in mono I need some dll that is included in .Net but in mono is "optional".
Does someone knows the dll that I need?

  • Any reason why you don't want to use keepassX, the open source version ? They have a version 2 coming currently in beta 2.
    – solsTiCe
    Commented Nov 24, 2015 at 13:31
  • @solsTiCe: no, KeePass2 has been a suggestion by other guys. When version 2 of keepassx will be available, I'll give it a try.
    – AndrewQ
    Commented Nov 24, 2015 at 13:54

2 Answers 2


Don't know about that specific error, but here's what I did on Ubuntu with keepass2 2.25:

Had to jump through a few extra hoops, which were resolved by the instructions from http://sourceforge.net/p/kp-googlesync/discussion/general/thread/19cca399/?limit=25&page=1#c5d9 Here's the rundown of what I did.

Downloaded GoogleSyncPlugin-2.1.2.zip and extracted the plgx to /tmp

Downloaded log4net-1.2.15-bin-newkey.zip from Apache and extracted the bin/mono/2.0/release/log4net.dll to /tmp. Then did:

cd /usr/lib/keepass2/plugins/
sudo mv /tmp/GoogleSyncPlugin.plgx .
sudo chmod o+r GoogleSyncPlugin.plgx; sudo chown root:root GoogleSyncPlugin.plgx
cd ..
sudo mv /tmp/log4net.dll .
sudo chown root:root log4net.dll; sudo chmod o+r log4net.dll
sudo cp /usr/lib/mono/2.0/System.ServiceModel.Web.dll .
sudo chmod o+r System.ServiceModel.Web.dll
mozroots --import --sync # Install the mozilla root certificates into Mono
  • Set up my own client credentials in the Google Developer Console as described in the readme.txt of GoogleSyncPlugin-2.1.2.zip, put those credentials into the Google Sync Plugin's configuration box, then press OK. Here's an excerpt:
    • Go to the Google Developers Console in your Google Account. See my comment below or sourceforge forum link above for a link.
    • Select "Enable Google APIs for use in your apps".
    • Choose a Project name like e.g.: "KeePass Google Sync Plugin".
    • Enable the "Drive API" at "APIs & auth" > "APIs".
    • Choose an e-mail address at "APIs & auth" > "Consent screen".
    • Set the product name for the consent screen to e.g.: "KeePass Google Sync Plugin".
    • Create a new OAuth 2.0 Client ID for an "Installed application" with application type "Other" at "APIs & auth" > "Credentials".
  • Go to SEE COMMENT BELOW in a browser, replacing YOUR_CLIENT_ID with the OAuth client id from the Google Developer Console.
  • Run this in a terminal, after replacing YOUR_CLIENT_ID, YOUR_CLIENT_SECRET, and CODE_FROM_LAST_STEP: curl -d 'client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&code=CODE_FROM_LAST_STEP&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code' SEE COMMENT BELOW
  • Edit the entry for my Google account in KeePass. Just find the on for your email address with the accounts.google.com URL. Might be in KeeFox tab. Click the Advanced tab, there should already be the GoogleSync.ClientID/Secret. Then click the Add button, then enter "GoogleSync.RefreshToken" for the Name, and the "refresh_token" value you obtained in the last step as the value. Also click "Enable in-memory protection" and then press OK.
  • Maybe restart KeePass2

Here is a discussion of KeePass with Ubuntu and either browser integration with sync in general and more current: "KeePass and Ubuntu 20.04 Setup (with Chrome, Firefox)?" https://askubuntu.com/posts/1228389

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .