<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Keepassxc on Learning Journey of Alexander Allgäuer</title><link>https://bitlex.li/tags/keepassxc/</link><description>Recent content in Keepassxc on Learning Journey of Alexander Allgäuer</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 13 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://bitlex.li/tags/keepassxc/index.xml" rel="self" type="application/rss+xml"/><item><title>KeePassXC</title><link>https://bitlex.li/posts/keepassxc/</link><pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate><guid>https://bitlex.li/posts/keepassxc/</guid><description>&lt;p&gt;KeePassXC is essentially KeePass with a modern UI, rebuilt from scratch to run natively on Windows, macOS, and Linux. Instead of relying on plugins like KeePass does, it ships with the most important features already built in, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;YubiKey support (see &lt;a href="https://bitlex.li/tutorials/yubikey-hmac-sha1-challenge-response/"&gt;Yubikey HMAC-SHA1 Challenge-Response&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Browser integration (Chrome, Firefox, Edge, and more)&lt;/li&gt;
&lt;li&gt;TOTP/2FA code generation&lt;/li&gt;
&lt;li&gt;SSH agent support&lt;/li&gt;
&lt;li&gt;Have I Been Pwned breach checking&lt;/li&gt;
&lt;li&gt;Passkey support&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="links"&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Source: &lt;a href="https://github.com/keepassxreboot/keepassxc"&gt;https://github.com/keepassxreboot/keepassxc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>YubiKey: HMAC-SHA1 Challenge-Response</title><link>https://bitlex.li/tutorials/yubikey-hmac-sha1-challenge-response/</link><pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate><guid>https://bitlex.li/tutorials/yubikey-hmac-sha1-challenge-response/</guid><description>&lt;p&gt;Configure HMAC-SHA1 Challenge-Response on a YubiKey&amp;rsquo;s second OTP slot.&lt;/p&gt;
&lt;h2 id="check-slot-status"&gt;Check slot status&lt;/h2&gt;
&lt;p&gt;Use &lt;code&gt;ykman otp info&lt;/code&gt; to make sure your second slot isn&amp;rsquo;t already used. Slot 1 is typically reserved for Yubico OTP.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ykman otp info
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Slot 1: programmed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Slot 2: empty&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="configure-otp-slot-2"&gt;Configure OTP slot 2&lt;/h2&gt;
&lt;p&gt;Generate a shared secret and program &lt;strong&gt;both&lt;/strong&gt; YubiKeys (primary + backup) with the &lt;em&gt;same&lt;/em&gt; secret so either can open the database.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SECRET&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;openssl rand -hex 20&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ykman otp chalresp --touch &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; $SECRET &lt;span style="color:#75715e"&gt;# Key 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ykman otp chalresp --touch &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; $SECRET &lt;span style="color:#75715e"&gt;# Key 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;unset SECRET
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;--touch&lt;/code&gt; flag is optional, but when you think about it, it absolutely makes sense — you want physical presence confirmation before the key responds.&lt;/p&gt;</description></item></channel></rss>