Documentation and FAQ – KeePassXC (2024)

New to KeePassXC?

  • Our Getting Started Guide will get youup and running quickly.
  • Looking for more comprehensive documentation? Our User Guide is there to help.
  • Need help troubleshooting the browser integration? Check the Setup Browser Integration section.
  • Build instructions and othertechnical guides can be found in the GitHub Wiki.
  • Looking for an audit of KeePassXC? Read the FAQ entry orDownload the Audit Report.

Looking for ways to contribute?

You can contribute to the project byreporting bugs,proposing new features,writing code,translating, and / ordonating.

Frequently Asked Questions

General

  • Why KeePassXC instead of KeePassX?

    KeePassX is no longer developed - as announced on the KeePassX website on 2021-12-09. Our decision to fork KeePassXwas made some years prior, due to a sharp decline in code frequency at the time, combined with our wish to provideyou with everything you love about KeePassX plus many new features and bugfixes.

  • Why KeePassXC instead of KeePass?

    KeePass is a very proven and feature-rich password manager and there is nothing fundamentally wrong with it.However, it is written in C# and therefore requires Microsoft's .NET platform.On systems other than Windows, you can run KeePass using the Mono runtime libraries, but you won't getthe native look and feel which you are used to.

    KeePassXC, on the other hand, is developed in C++ and runs natively on Linux, macOS and Windows giving you thebest-possible platform integration.

  • Which password database formats are compatible with KeePassXC?

    KeePassXC currently uses the KeePass 2.x (.kdbx) password database formats KDBX 3.1 and KDBX 4 as its native file formats.KDBX 2 files can be opened, but will be upgraded to a newer format. KeePass 1.x (.kdb) databases can be imported intoa .kdbx file, but saving a .kdbx file as .kdb would be lossy, and saving to .kdb is not supported by KeePassXC.

  • Why is there no cloud synchronization feature built into KeePassXC?

    Cloud synchronization with Dropbox, Google Drive, OneDrive, ownCloud, Nextcloud etc. can be easily accomplished bysimply storing your KeePassXC database inside your shared cloud folder and letting your synchronization service ofchoice do the rest. We prefer this approach, because it is simple, not tied to a specific cloud provider and keepsthe complexity of our code low.

  • Does KeePassXC support (KeePass2) plugins?

    No, KeePassXC does not support plugins at the moment and probably never will. KeePassXC already provides many of the features thatneed third-party plugins in KeePass2, so for most things you don't even need plugins, nor should you ever want them.Plugins are inherently dangerous. Many KeePass2 plugins are barely maintained (if at all), some have known vulnerabilities thathave never been (and probably never will be) fixed, and none of them are as thoroughly tested and reviewed as we test and reviewcode that goes into our main application. We find that encouraging users to install untested (and often quickly-abandoned) third-partyplugins is inherently incompatible with the security demands of a password manager.

    If you really need external functionality notavailable in KeePassXC, you can look for "plugins" that use the KeePassXC-Browser API, which is a much more secure way of sharingpasswords with third-party applications than loading those applications as plugins directly into KeePassXC.

  • How can I add additional word lists to the passphrase generator?

    You can add additional word lists to the passphrase generator by copying the word list file to theshare/wordlists folder inside your KeePassXC installation directory and then restarting KeePassXC.

    On Linux, the default install location is /usr/share/keepassxc,on macOS it is /Applications/KeePassXC.app/Contents/Resources andon Windows C:\Program Files\KeePassXC (or C:\Program Files (x86)\KeePassXC for 32-bit).

Security

  • How can I migrate my database to KDBX 4?

    In the Database application menu, select Database security.... Select the Encryption Settings taband choose KDBX 4.0 (recommended). Press OK and save the database.

  • KeePassXC allows me to store my TOTP secrets.Doesn't this undermine any advantage of two-factor authentication?

    Yes. But only if you store them in the same database as your password. We believe that storing both togethercan still be more secure than not using 2FA at all, but to maximize the security gain from using 2FA,you should always store TOTP secrets in a separate database, secured with a different password, possibly even on a different computer.

  • Why would I use a password manager? Isn't it totally insecure to useone password for everything?

    Password reuse and simple, easy-to-guess passwords are the biggest problems when using online services.If one service gets compromised (either by guessing your password or by exploiting a security vulnerabilityin the service's infrastructure), an attacker may gain access to all of your other accounts.

    But using different passwords for all websites is difficult without a way of storing them somewhere safe.Especially with arbitrary password rules for various services, it becomes increasingly hard to use both strongand diverse passwords. KeePassXC stores your passwords for you in an encrypted database file, so you onlyneed to remember one master password. Of course, the security of all your services depends on the strengthof your master password now, but with a sufficiently strong password, the password database should beinfeasible to crack.

    The database is encrypted with either the industry-standard AES256 or the Twofishblock cipher and the master password is strengthened by a configurable number of key transformationsto harden it against brute force attacks. Additionally, you can use a key file filled with an arbitrarynumber of random bytes or a YubiKey to further enhance your master key.

  • Has KeePassXC ever had an external security audit?

    Yes, an audit was conducted by Zaur Molotnikov, an independent security consultant, and completed on January 19, 2023. Thisaudit was conducted free of charge to the KeePassXC Team and the findings and writeup were reviewed for correctness.Download the Audit Report.

    Keep in mind that:

    • An audit is not 100% proof that software is safe and secure. Some flaws can be overlooked even by the best auditors.
    • An audit is valid only for a “snapshot” of the code. If new code is added, new vulnerabilities can be introduced.
    • Audits are expensive and time consuming, you can consult with OSTIF orOTF for funding additional KeePassXC audits.
  • I see that KeePassXC requires network access. What for?

    KeePassXC needs network access for downloading website icons (favicons) for password entries. This feature is optionaland opt-in. KeePassXC will never access any network resource without your explicit prior consent. If youdon't use this feature, you may also compile KeePassXC without any networking code (seenext question).

  • Can I get a KeePassXC version without any networking code?

    Yes, you can compile KeePassXC without any networking code. Simply configure CMake with -DWITH_XC_NETWORKING=OFF(see Building KeePassXC).

AppImage and Snap package

  • How do I execute an AppImage?

    The AppImage is a self-contained executable archive, comparable to an Android APK or macOS DMG. To executeit, simply give the downloaded *.AppImage file execution permissions:

    1chmod +x ./KeePassXC-*.AppImage

    After that you can execute it either from the terminal or by double clicking it just like any other program.

  • What systems can I use the AppImage or Snap package on?

    The AppImage should run out of the box on almost any moderately modern Linux distribution. The Snap is supported on allsystems, which have snapd installed. This is primarily Ubuntu, but also Debian, Fedora, OpenSUSE,Arch Linux and many more. For a full list and more information visit snapcraft.io. Notethat not all systems that can run Snaps also support confinement via AppArmor.

  • How do I use the KeePassXC CLI tool with the AppImage?

    Starting with version 2.2.2, you can run the KeePassXC CLI tool from the AppImage by executing it with thecli argument:

    1./KeePassXC-*.AppImage cli
  • Why doesn't my theme work?

    Since Snaps and AppImages are self-contained and mostly isolated from your system, they cannot know whattheme you are currently running. This is a known issue with both Snaps and AppImages.

  • How do I get my YubiKey to work with the Snap?

    Due to a Snap's isolation and security settings, you must manually enable the raw-usb interface in orderto use your YubiKey. Issue the following command from a terminal to enable this interface:

    1sudo snap connect "keepassxc:raw-usb" "core:raw-usb"
  • Why can't I see anything outside my home directory?

    Due to Snap's isolation and security settings, you cannot access any files outside your home directory.Furthermore, you cannot access any hidden files within your home directory. The only exception is mountedUSB drives, but you must type in /media/ into the file open dialog to see them.

    If you still cannot access the /media/ directory then you may need to enable this permission in the Ubuntu store.Open the Ubuntu store, choose the KeePassXC app, and click permissions.

Key Files

  • What is a key file and how can I get one?

    A key file is a file containing random bytes that can be added to your master key for additional security.Think of it as a really complicated and long password that is read from a file, so you don't have to rememberor type it into your master password field. You can basically use any file you want as a key file, but itis of utmost importance that a) the file never changes and b) it actually contains unpredictable data. If the filechanges, it is as if you forgot your password and you will lose access to your database.

    On the other hand, if the datais not random enough, then it's a really bad password. So, for instance, a static and never-changing holiday pictureis okay, your personal notes file is not. Generally, we recommend you let KeePassXC generate a dedicated key file for you.Go to Database -> Database Settings -> Security. There you click on Add Key File and thenon Generate. Select the location where to save the key file, make sure the path to the new fileis inserted into the Key File field, and save your database. Don't forget to keep a backup of the key file ina safe place!

  • How secure is a key file and how can I sync it to other devices?

    A key file is only as secure as you keep it. It is basically a password that you've written down. As a generalrule, you should never use a key file without an actual password, because it is harder to keep your key filesecret than a memorized password that only you know. However, a key file can be very strong additionalprotection if kept separately from the database file, such as on an external thumb drive. If you sync your databasevia a cloud provider (Dropbox, Google Drive, Nextcloud, …), you should only sync the KDBX file and distribute the key file toyour computers by different means, such as said thumb drive.

    But whatever you do, keep a backup in a safe location!If you lose your key file, you lose your database. Keep in mind that USB thumb drives are notoriously unreliable,break easily, or get lost. If you can afford it, we recommend you use a hardware token such as a YubiKey or OnlyKeyinstead of a key file (see next section). Such a key adds an even greater amount of security, but with fewer potential pitfalls.

YubiKey / OnlyKey

  • Does KeePassXC support two-factor authentication (2FA) with YubiKeys or OnlyKeys?

    Yes and no. No, because technically speaking, KeePassXC is not a service and therefore does not use "authentication". Instead,you are "decrypting" your database, which is different from "authentication". Nonetheless, you can improve the security of your databaseby use of a YubiKey in a slightly different way. KeePassXC generates a challenge and uses the YubiKey's response to this challenge toenhance the encryption key of your database.

    So in a sense, it makes your password stronger, but technically it doesn't qualify as aseparate second factor, since this is not an authentication scheme and also because the expected response doesn't change every time youtry to decrypt your database. It does, however, change every time you save your database. Be aware, however, that the previous version of yourdatabase can still be decrypted with the old challenge/response (but no other version prior to that and no future version either).

  • How do I configure my YubiKey / OnlyKey for use with KeePassXC?

    To use a YubiKey or OnlyKey for securing your KeePassXC database, you have to configure one of your YubiKey / OnlyKey slotsfor HMAC-SHA1 Challenge Response mode (see thisvideofor how to do this). Once your YubiKey (or OnlyKey, you got the point…) is set up, open your database in KeePassXC, go toFile / Change master key, enable Challenge Response and then save the database.
    Important: Always make a copy of the secret that is programmed into your YubiKey whileyou configure it for HMAC-SHA1 and store it in a secure location. If you lose or brick the key or accidentallyreprogram it with a different secret, you will permanently lose access to your database!

  • When I use KeeChallenge with KeePass2, it creates an extra file. Why doI have no such file when using KeePassXC?

    Our implementation differs from how KeeChallenge handles YubiKeys. KeeChallenge uses the HMAC secretdirectly to enhance the database. To make this work, they need to store the secret in a side-car file,encrypted with the response of a challenge-response pair that is calculated ahead of time. In KeePassXC,we do not require any knowledge of the HMAC secret. We use the database's master seed (a random byte string that is part of your database)as challenge and then use the response to encrypt the database. That way we do not need an extra file and also gainthe advantage that the required response changes every time you save the database, which resemblesactual two-factor authentication more closely.

  • When I secure my database in KeePass2 with a YubiKey, I can't open it inKeePassXC (or vice versa), why?

    Due to the fact that our YubiKey implementation differs from KeeChallenge's, they are inherently incompatible(see question above). If you need compatibility between KeePass2 and KeePassXC, you cannot use YubiKeysat the moment.

  • Why only HMAC-SHA1? Why not FIDO-U2F or TOTP?

    Both FIDO-U2F and TOTP require a dynamic component (i.e., a counter or timestamp) for successful authentication.This is perfect for authenticating at an online service, but doesn't work for an offline database which needsto be encrypted with a fixed key. HMAC-SHA1, on the other hand, can be computed ahead of timeas it only needs a fixed secret and no dynamic component of any kind.

  • But the feature list says KeePassXC supports TOTP. I am confused.

    We do support generation of timed one-time passwords (TOTP), but do not (and cannot) support it for securingyour KeePassXC database. KeePassXC allows you to store TOTP secrets for online services inside a databaseand generates the corresponding timed one-time passwords for you. For TOTP, see also the questionKeePassXC allows me to store my TOTP secrets. Doesn't this undermine any advantage oftwo-factor authentication?

  • What happens if I break my YubiKey? Can I create backup keys?

    You should always make a copy of the HMAC secret that is stored on the YubiKey and keep it in a securelocation. This can be an analog paper copy, but since the YubiKey personalization tool allows you toprogram a custom secret into the key, you may as well program a second key with the same secret.

  • Can I register multiple YubiKeys with my KeePassXC database?

    You can only use a single secret for encrypting the database. So you can use multiple YubiKeys, but theyall have to be programmed with the same secret (see question above).

Browser integration

  • Does KeePassXC support browser extensions?

    Yes. KeePassXC supports the extension KeePassXC-Browser.You can download it for Mozilla Firefox andGoogle Chrome / Chromium / Vivaldi.Firefox ESR (52.x) is supported, but the following features are disabled because of WebExtension API limitations:

    • Showing context menus on password fields (menus.ContextType)
    • HTTP Auth support (webRequest.onAuthRequired)
  • How do I connect browser extensions with KeePassXC?

    You can enable Browser Integration (KeePassXC-Browser) from the application settings.See the page How to connect KeePassXC-Browser with KeePassXC for moredetailed information for the new Browser Integration. For troubleshooting see the following wiki page.

  • How do I fill in additional values on a webpage?

    It is possible to fill additional information beyond username, password, and TOTP by defining String Fields on a page.

    1. From the extension popup menu, click "Choose custom login fields". You can skip the Username, Password, and TOTP fields if not needed.
    2. On Step 4 (Confirm Selection), choose the additional string fields you need to fill. Note that they are numbered sequentially.
    3. After choosing the String Fields, go to your KeePassXC client and create advanced attributes with a prefix of 'KPH: ' in the order you chose them above. NOTE: The space after the colon is required.
    4. If you wish, you may add a short name after the prefix to help you remember its purpose.

    An example using the page https://meine.deutsche-bank.de/trxm/db/init.do:

    1. Choose custom login fields for this page and select Branch, Account and Sub-account as String Fields when you reach step 4.
    2. Go to your entry and add the following advanced attributes (the order is critical):
      1. KPH: Branch
      2. KPH: Account
      3. KPH: Sub-account
    3. Test the filling of the string fields by refreshing the page and using the extension.

SSH Agent integration

  • How does the SSH Agent integration work?

    The SSH Agent integration is supported on all target platforms (Linux, macOS and Windows) and it acts as a clientfor an existing agent. It can automatically add SSH keys from your KeePassXC database to a running SSH agentwhen unlocked and remove them when locked.

    • On Linux, most desktops are already running an agent without any set up required.
    • On macOS, ssh-agent is running by default and no further setup is required.
    • On Windows, you have multiple options:
      • One is to have Pageant running. It is part of thePuTTY suite.
      • An alternative is to use e.g. Win32 OpenSSHwhich may come preinstalled with your Windows 10 version.
      • The MSYS2 ssh-agent socket offered by Git for Windows's bundled OpenSSH isnot supported
  • What SSH key types are supported?

    Most SSHv2 key types are supported (DSA, RSA and Ed25519), including encrypted keys. ECDSA keys are onlysupported with the new OpenSSH file format. 3DES-encrypted keys are not supported and we highly recommendupgrading them for external storage or store them decrypted inside the database.

    • SSHv1 keys are not supported.
    • PuTTY format key files (.ppk) are not supported. You can use PuTTY Key Generator(puttygen.exe) to convert your keys to OpenSSH format.
    • RFC4716 format key files are not supported.
  • Why are the agent buttons greyed out / why doesn't it work?

    On Linux or macOS, you need to have ssh-agent running and the SSH_AUTH_SOCK environmentvariable available for KeePassXC at launch.

    Arch Linux wiki has a generic guidehow to manually run ssh-agent if it's not already set up. Sometimes other applications likeGNOME Keyring or gpg-agent already provide a compatible agent that also works withKeePassXC.

    On Windows, either Pageant needs to be running, see How does the SSH Agent integration work?or, alternatively, you need to enable and start the Windows OpenSSH Authentication Agent(commonly referred to as ssh-agent). This process is documented inMicrosoft's documentation for user keys.

    The MSYS2 ssh-agent socket offered by Git for Windows's bundled OpenSSH is not supported.

  • How do I set up a passphrase for encrypted keys?

    The SSH Agent integration uses the entry password field as the decryption key.

  • Why does the public key (seem to) have no comment?

    When using normal DSA or RSA keys, the private key file does not contain any embedded text. In that case,the entry username field is used as the public key comment. It is also sent to the agent when adding a keyand is visible in the agent when listing keys.

    If you are using Ed25519 keys or have converted your old key to the new OpenSSH file format, the comment isembedded in the key file which is then used by KeePassXC. You can use ssh-keygen to modify the comment.

  • I'm already using KeeAgent, is KeePassXC compatible with it?

    Yes, mostly. KeeAgent supports more key types and provides a custom agent, but otherwise you can use thesame database with KeeAgent and KeePassXC.

  • Why is Pageant refusing my keys?

    Pageant does not support confirm-on-use or automatic removal of key after a timeout. There doesn't seem to beany alternative to Pageant for Windows that supports both of them.

  • Why is OpenSSH ssh-agent refusing my keys?

    You may experience an Agent protocol error if you are using confirm-on-use option for your keys(e.g. set via the environment variable SSH_ASKPASS_REQUIRE). In that case ssh-agentneeds to have a ssh-askpass program available.

    • On Linux it depends on your distribution and desktop environment how to install and configure one as there are several available.
    • On macOS, you need a third party program like theseal/ssh-askpass.
    • On Windows the default Windows OpenSSH installation does not support confirm-on-use or automatic removal of key after a timeout.
  • I'm getting protocol or connection errors, what's wrong?

    If you are using GNOME Keyring, it is known to be buggy and the SSH Agent implementation fairly incompleteprior to release 3.27.92. You are encouraged to use OpenSSH ssh-agent if you are stuck withan older version.

    Known limitations of older versions include no support for Ed25519 keys, no support for confirm-on-use and incorrectimplementation of the agent protocol causing protocol errors.

  • I'm getting a "Too many authentication failures" error, what shall I do?

    SSH will try all available identity files in sequence when connecting to a server. If you export many SSHkeys at a time, you'll very likely experience a "Received disconnect from {port}: Too manyauthentication failures" error. To solve this issue, you'll have to tell SSH which identity file touse. Either use the -i command line option or the IdentityFile directive in yourOpenSSH config file (~/.ssh/config) to pass the path to the respective private key file.

    If you use the IdentityFile directive, you likely want to use the IdentitiesOnlydirective, too. The Arch Linux wiki has a generic guide on how to manage multiple keys.

    If you prefer storing your private key inside your database using an attachment, you can still do so.Instead of letting the IdentityFile directive point to a private key file, let it point toyour public key file. The SSH Agent will use the provided information to select the correct private key.

  • How do I use KeePassXC SSH Agent integration with Git (Bash) on Windows?

    KeePassXC on Windows can be used with Pageantor with Windows OpenSSH.
    Git for Windows supports both options since version2.33.0.

    You will be prompted during installation of Git for Windows to pick the option you prefer – depending onyour Windows version and whether PuTTY is installed.

    The MSYS2 ssh-agent socket offered by Git for Windows's bundled OpenSSH isnot supported.

    If you did not choose Windows OpenSSH during Git installation you can still do the following to make Git (Bash) use Windows OpenSSH:Prepend the path to Windows OpenSSH to the PATH variable inside the Git Bash, e.g.export PATH="/c/Windows/System32/OpenSSH:$HOME/bin:$PATH" or use the GIT_SSH_COMMAND environment variable(core.sshCommand in the Git configuration file) to override the path to the SSH binary specifically for Git.

Platform-specific

  • Is Auto-Type supported on macOS, Windows and Linux?

    Yes, Auto-Type works on all three supported platforms, although on Linux it only works in an X11 session, not Wayland.

  • Does KeePassXC work on mobile phones? If not, which app would you recommend?

    We don't have our own mobile app, but you can have the same functionality on both Android and iOS!

    For KeePassXC, porting it properly to mobile platforms would require a full rewrite.You may be able to compile KeePassXC for the mobile OS of your choice, but it isn't at all optimizedfor mobile screen sizes and form factors, let alone multi-touch input. We also don't see any advantage inproviding a mobile version of KeePassXC when there are already excellent options.

  • Why do the tray menu and in-app shortcuts not work on Ubuntu/Unity?

    This is a bug caused by appmenu-qt5. You have 3 options:

    • Remove the appmenu-qt5 package
    • Set the environment variable UBUNTU_MENUPROXY=''
    • Set the environment variable QT_QPA_PLATFORMTHEME=''

    Note: When you choose the first or third option, KeePassXC will lose the Unity look and feel.

  • I am getting "System Error: VCRUNTIME140_1.dll was not found" when starting KeePassXC. Why?

    This error indicates that you are missing the MSVC runtime library (Microsoft Visual C++ Redistributable). You can download the latest version from Microsoft. A download link can also be found on our downloads page.

Documentation and FAQ – KeePassXC (2024)
Top Articles
Latest Posts
Article information

Author: Rob Wisoky

Last Updated:

Views: 5841

Rating: 4.8 / 5 (68 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Rob Wisoky

Birthday: 1994-09-30

Address: 5789 Michel Vista, West Domenic, OR 80464-9452

Phone: +97313824072371

Job: Education Orchestrator

Hobby: Lockpicking, Crocheting, Baton twirling, Video gaming, Jogging, Whittling, Model building

Introduction: My name is Rob Wisoky, I am a smiling, helpful, encouraging, zealous, energetic, faithful, fantastic person who loves writing and wants to share my knowledge and understanding with you.