====== 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):
#!/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
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.
DWgF+SL63U+GAsBJQXhahg==
Save to Google Drive
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.
s6j9/ngTSmqcXdW6hDqbjg==
0
/home/wuff/KeePass/Wulf.kdbx
tkamn96US7mbrjykfswQ6g==
0
2uX4OwcwTBOe7y66y27kxw==
/home/wuff/KeePass/keepass_trigger_load.sh
True
0
Iq135Bd4Tu2ZtFcdArOtTQ==
/home/wuff/gdrive/Wulf.kdbx
2uX4OwcwTBOe7y66y27kxw==
/home/wuff/KeePass/keepass_trigger_save.sh
False
0
tkamn96US7mbrjykfswQ6g==
1
POhA77GdHU6Hy6Pwl7pf/w==
Load from Google Drive
When the local copy is opened, the server copy will be pulled and synchronized with the local copy.
5f8TBoW4QYm5BvaeKztApw==
0
/home/wuff/KeePass/Wulf.kdbx
tkamn96US7mbrjykfswQ6g==
0
2uX4OwcwTBOe7y66y27kxw==
/home/wuff/KeePass/keepass_trigger_load.sh
True
0
Iq135Bd4Tu2ZtFcdArOtTQ==
/home/wuff/gdrive/Wulf.kdbx
tkamn96US7mbrjykfswQ6g==
1
====== 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.