Migrating from LastPass to KeePassXC

I’ve never really felt all that good about storing my passwords on the public cloud, but after we started using LastPass at work I somehow got lulled into adopting it for personal use as well.

I’ve been pondering the reasons as to why I’m now depending on this piece of proprietary software that’s happily storing all my sensitive credentials on somebody else’s server. Sadly, the answer is that I’m just that lazy and LastPass made things very convenient.

KeePassXC 2.3.4

KeePassXC 2.3.4 running on Arch Linux x86_64.

Anyhow, it’s finally time to smell the hobbit and retake control of my precious. Enter KeePassXC, a free and open-source password manager. As faith would have it, a fork of KeePassX, the password manager I was previously using before moving everything off to LastPass.

Exporting data from LastPass

Thankfully, LastPass has made it easy to export and migrate your data by allowing it to be exported as a CSV file. Using the LastPass extension, simply navigate to: More options => Advanced => Export => LastPass CSV file and save the resulting file using the .csv extension.

Let’s examine the exported file from LastPass. The following file consists of two regular sites and a secure note. The content of the file is available in clear text so we can observe both user credentials and the database configuration for this site:

url,username,password,extra,name,grouping,fav
https://blog.paranoidpenguin.net/wp-login.php,Potus,3R2PQ^&UuOOQ@zsflq9@20d0,,paranoidpenguin.net,Blog,0
https://blog.paranoidpenguin.net/wp-login.php,roger.comply,MEZ2zTCVk!wG4lRpQ$)m%Agg,,paranoidpenguin.net,Blog,0
http://sn,whosparanoid,LrhIxQRhMGs5H$YCDrhv,"NoteType:Database
Type:MySQL
Hostname:localhost
Port:3306
Database:paranoid
Username:whosparanoid
Password:LrhIxQRhMGs5H$YCDrhv
SID:
Alias:
Notes:Database configuration for blog.paranoidpenguin.net",paranoidpenguin.net - DB,Secure Notes,0

The columns from the export are arranged in the following order, which will have significance when the CSV file is to be imported with KeePassXC:

url:       column1
username:  column2
password:  column3 
extra:     column4 
name:      column5
grouping:  column6
fav:       column7

Importing a CSV file with KeePassXC

Fire up KeePassXC and select Database => Import => Import CSV file. Choose a password and optionally add a key file before hitting the “OK” button. Next, we’ll enter the CSV import screen to map the columns from the export file against KeePassXC’s corresponding columns. The mapping itself is rather straightforward.

KeePassXC Group:         LastPass column6
KeePassXC Title:         LastPass column5
KeePassXC Username:      LastPass column2
KeePassXC Password:      Lastpass column3
KeePassXC Url:           LastPass column1
KeePassXC Notes:         LastPass column4
KeePassXC Last modified: LastPass Not present in CSV file
KeePassXC Created:       LastPass Not present in CSV file

The following image shows KeePassXC’s import CSV fields screen with the column mapping applied as earlier specified:

KeePassXC CSV import

Importing CSV fields from the LastPass export file

The next image shows the entry for the converted “database note type” from LastPass (secure notes) after running the import.

KeePassXC - Edit entry

KeePassXC 2.3.4 running on Arch Linux x86_64.

Browser integration

KeePassXC also provides official browser extensions for Firefox, Google Chrome, Chromium and Vivaldi. I’ve been experimenting with the Firefox extension and found it to be working as advertised, without any complications. The animated gif below shows the browser extension in its full glory.

KeePassXC - Firefox extension
Please refer to How to connect KeePassXC-Browser with KeePassXC for a quick tutorial on configuring browser integration.

My thanks to the KeePassXC developers for providing us with the best cross-platform free and open-source password manager. Goodbye LastPass and thanks for all the fish.

Btw, seeing how I managed to publish the credentials for my admin account, I guess that means I’m finally open to accepting those guest posts ;-)