Table of Contents
Keepass2
KeePass is a the free, open source, light-weight and easy-to-use password manager/password safe.
It can be installed under ubuntu/mint using
sudo add-apt-repository ppa:ubuntuhandbook1/keepass2 sudo apt update sudo apt-get install keepass2 ca-certificates
Uninstall instructions:
sudo apt remove --autoremove keepass2 sudo add-apt-repository --remove ppa:ubuntuhandbook1/keepass2
Keepass2.exe.config error
sudo apt-get install mono-utils monodis --assembly /usr/lib/keepass2/KeePass.exe | grep Version | sed 's|Version:\ *\([0-9\.]*\)$|\1|' sudo vi /usr/lib/keepass2/KeePass.exe.config #replace newVersion number in file Oneliner: sudo sed -i 's/newVersion="\([0-9\.]*\)"/newVersion='$(monodis --assembly /usr/lib/keepass2/KeePass.exe | grep Version | sed 's|Version:\ *\([0-9\.]*\)$|\"\1|')'\"/' /usr/lib/keepass2/KeePass.exe.config
Auto patching of config file, create shell script and apt pre-inst hook (no post inst hook available as per https://askubuntu.com/questions/869219/how-can-i-run-a-script-after-a-specific-package-is-upgraded):
- /usr/local/bin/fix-keepass2-config.sh
#!/bin/bash if grep -q keepass2 then if [ ! -f /usr/bin/monodis ] then echo "monodis is required to fix the keepass2 config file." echo "Please install it via apt-get install mono-utils" exit 1 else echo "Scheduling config update for keepass2 in 5 minutes..." ( sleep 300; sed -i 's/newVersion="\([0-9\.]*\)"/newVersion='$(monodis --assembly /usr/lib/keepass2/KeePass.exe | grep Version | sed 's|Version:\ *\([0-9\.]*\)$|\"\1|')'\"/' /usr/lib/keepass2/KeePass.exe.config ) & fi fi
- /etc/apt/apt.conf.d/99-keepass2-hook
DPkg::Pre-Install-Pkgs {"/usr/local/bin/fix-keepass2-config.sh";}; DPkg::Tools::Options::/usr/local/bin/fix-keepass2-config.sh::Version "1";
sudo chmod 755 /usr/local/bin/fix-keepass2-config.sh
Manual update to latest Windows version
The keepass2 PPAs have not been updated for quite a while. To use the latest version, follow these instructions (after installing the PPA version):
- Download the portable version zip file from official link https://keepass.info/download.html
- Close the KeePass2 application
- Make a copy of the /usr/lib/keepass2 folder as backup
- Unzip the portable version and copy the file KeePass.exe to /usr/lib/keepass2 as root
Plugins under Linux
Keepass compiles plugins and requires the complete mono environment in order to do this.
apt-get install mono-complete
Once plugins are copied into the /usr/lib/keepass2
directory, ensure to chmod 666
the plugin file.
for the googlesync plugin, the following is required:
download sync plugin, then extract the zip from http://sourceforge.net/projects/kp-googlesync/?source=typ_redirect
sudo cp GoogleSyncPlugin.plgx /usr/lib/keepass2 sudo apt-get install liblog4net1.2-cil sudo cp /usr/lib/cli/log4net-1.2/log4net.dll /usr/lib/keepass2 sudo cp /usr/lib/mono/2.0/System.ServiceModel.Web.dll /usr/lib/keepass2 possibly also required is the import of the mozilla root certificates: mozroots --import --sync
Google Drive Sync
apt install golang vi ~/.bashrc export GOPATH=$HOME/gopath export PATH=$GOPATH:$GOPATH/bin:$PATH source ~/.bashrc go get -u github.com/odeke-em/drive/cmd/drive mkdir ~/gdrive drive init ~/gdrive open url, log into google, authorise drive, copy and paste authorization code. cd ~/gdrive drive pull Wulf.kdbx mkdir ~/KeePass/
vi ~/KeePass/keepass_trigger_load.sh
#!/bin/bash cd ~/gdrive drive pull -ignore-conflict -quiet Wulf.kdbx
vi ~/keepass_trigger_save.sh:
#!/bin/bash cp ~/KeePass/Wulf.kdbx ~/gdrive cd ~/gdrive drive push -ignore-conflict -quiet Wulf.kdbx chmod 777 keepass_trigger_*.sh
Keepass Trigger Config “Save to Google Drive” / “Load from Google Drive”. Copy the xml to clipboard, then in Keepass go to tools → triggers → tools → Paste from clipboard. Adjust the paths in the triggers.
<?xml version="1.0" encoding="utf-8"?> <TriggerCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Triggers> <Trigger> <Guid>DWgF+SL63U+GAsBJQXhahg==</Guid> <Name>Save to Google Drive</Name> <Comments>When the local copy is saved, the server copy will be pulled and synchronized with the local copy. The local copy will then be copied to the local Google Drive folder and pushed to the server.</Comments> <Events> <Event> <TypeGuid>s6j9/ngTSmqcXdW6hDqbjg==</TypeGuid> <Parameters> <Parameter>0</Parameter> <Parameter>/home/wuff/KeePass/Wulf.kdbx</Parameter> </Parameters> </Event> </Events> <Conditions /> <Actions> <Action> <TypeGuid>tkamn96US7mbrjykfswQ6g==</TypeGuid> <Parameters> <Parameter /> <Parameter>0</Parameter> </Parameters> </Action> <Action> <TypeGuid>2uX4OwcwTBOe7y66y27kxw==</TypeGuid> <Parameters> <Parameter>/home/wuff/KeePass/keepass_trigger_load.sh</Parameter> <Parameter /> <Parameter>True</Parameter> <Parameter>0</Parameter> <Parameter /> </Parameters> </Action> <Action> <TypeGuid>Iq135Bd4Tu2ZtFcdArOtTQ==</TypeGuid> <Parameters> <Parameter>/home/wuff/gdrive/Wulf.kdbx</Parameter> <Parameter /> <Parameter /> </Parameters> </Action> <Action> <TypeGuid>2uX4OwcwTBOe7y66y27kxw==</TypeGuid> <Parameters> <Parameter>/home/wuff/KeePass/keepass_trigger_save.sh</Parameter> <Parameter /> <Parameter>False</Parameter> <Parameter>0</Parameter> <Parameter /> </Parameters> </Action> <Action> <TypeGuid>tkamn96US7mbrjykfswQ6g==</TypeGuid> <Parameters> <Parameter /> <Parameter>1</Parameter> </Parameters> </Action> </Actions> </Trigger> <Trigger> <Guid>POhA77GdHU6Hy6Pwl7pf/w==</Guid> <Name>Load from Google Drive</Name> <Comments>When the local copy is opened, the server copy will be pulled and synchronized with the local copy.</Comments> <Events> <Event> <TypeGuid>5f8TBoW4QYm5BvaeKztApw==</TypeGuid> <Parameters> <Parameter>0</Parameter> <Parameter>/home/wuff/KeePass/Wulf.kdbx</Parameter> </Parameters> </Event> </Events> <Conditions /> <Actions> <Action> <TypeGuid>tkamn96US7mbrjykfswQ6g==</TypeGuid> <Parameters> <Parameter /> <Parameter>0</Parameter> </Parameters> </Action> <Action> <TypeGuid>2uX4OwcwTBOe7y66y27kxw==</TypeGuid> <Parameters> <Parameter>/home/wuff/KeePass/keepass_trigger_load.sh</Parameter> <Parameter /> <Parameter>True</Parameter> <Parameter>0</Parameter> <Parameter /> </Parameters> </Action> <Action> <TypeGuid>Iq135Bd4Tu2ZtFcdArOtTQ==</TypeGuid> <Parameters> <Parameter>/home/wuff/gdrive/Wulf.kdbx</Parameter> <Parameter /> <Parameter /> </Parameters> </Action> <Action> <TypeGuid>tkamn96US7mbrjykfswQ6g==</TypeGuid> <Parameters> <Parameter /> <Parameter>1</Parameter> </Parameters> </Action> </Actions> </Trigger> </Triggers> </TriggerCollection>
Install Keepass2
Keepass2 is available in the regular debian repositories.
sudo apt-get install keepass2 ca-certificates-mono
For the Google Sync Plugin, download it from http://keepass.info, then extract the zip file and copy the plgx file into the keepass plugins folder:
sudo cp GoogleSyncPlugin.plgx /usr/lib/keepass2/Plugins/ sudo chmod 666 /usr/lib/keepass2/Plugins/GoogleSyncPlugin.plgx
Google Sync Plugin full install
cd /tmp wget wget https://sourceforge.net/projects/kp-googlesync/files/GoogleSyncPlugin-2.x/GoogleSyncPlugin-2.1.2.zip unzip GoogleSyncPlugin-2.1.2.zip unzip GoogleSyncPlugin-2.1.2.zip GoogleSyncPlugin.plgx rm GoogleSyncPlugin-2.1.2.zip sudo mkdir -p /usr/lib/keepass2/Plugins/ sudo mv GoogleSyncPlugin.plgx /usr/lib/keepass2/Plugins/ sudo chmod 666 /usr/lib/keepass2/Plugins/GoogleSyncPlugin.plgx wget http://mirror.vorboss.net/apache//logging/log4net/binaries/log4net-2.0.8-bin-newkey.zip unzip log4net-2.0.8-bin-newkey.zip sudo cp log4net-2.0.8/bin/mono/2.0/release/log4net.dll /usr/lib/keepass2/ sudo chown root:root /usr/lib/keepass2/log4net.dll sudo chmod 644 /usr/lib/keepass2/log4net.dll sudo cp /usr/lib/mono/2.0/System.ServiceModel.Web.dll /usr/lib/keepass2/ sudo chmod 644 /usr/lib/keepass2/System.ServiceModel.Web.dll
set google sync plugin to sync both on saving and opening
KeeAutoExec plugin
This plugin automatically opens additional databases.
https://keepass.info/plugins.html#keeautoexec
Installation:
wget https://keepass.info/extensions/v2/keeautoexec/KeeAutoExec-2.6.zip sudo mkdir -p /usr/lib/keepass2/Plugins/ sudo unzip KeeAutoExec-2.6.zip -d /usr/lib/keepass2/Plugins/ rm KeeAutoExec-2.6.zip
Then restart keepass
To use:
- Create a new group in your database and name it “AutoOpen” (without the quotes).
- Each non-expired entry in this group corresponds to a database that should be opened automatically when the current database is opened. The fields of each entry specify the following:
- Title: Ignored by the plugin; can be used for comments.
- User name: Must contain the path to the key file, if one should be used. The path can be either absolute or relative to the directory containing KeePass.exe.
- Password: The master password for the database to open. If no password is required, leave this field empty.
- URL: Path to the database file to open. The path can be either absolute or relative to the directory containing KeePass.exe.
- Server credentials. When opening a database from a URL, the credentials for accessing the file on the server can be specified using the custom entry strings “IocUserName” and “IocPassword”. These strings must not contain new-line characters.
- Custom entry string “Visible” set to “False” will hide autoopen entries from Menu → open
- Custom entry string “Focus” set to “Restore” will switch the active tab to the main database again.