<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dan Yeaw's Blog (Posts about Linux)</title><link>https://dan.yeaw.me/</link><description></description><atom:link href="https://dan.yeaw.me/categories/cat_linux.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2025 &lt;a href="mailto:dan@yeaw.me"&gt;Dan Yeaw&lt;/a&gt; </copyright><lastBuildDate>Fri, 28 Nov 2025 21:50:02 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>GNOME GitLab CLI</title><link>https://dan.yeaw.me/posts/gnome-gitlab-cli/</link><dc:creator>Dan Yeaw</dc:creator><description>&lt;p&gt;Git authentication has evolved quite a bit since 2005 when SSH keys were the
go-to method for connecting to remote repositories.&lt;/p&gt;
&lt;p&gt;Throughout the 2010s, GitHub made SSH the standard while HTTPS quietly gained
traction since it played nicer with corporate firewalls. When GitHub
eventually required personal access tokens instead of passwords, tools like
Git Credential Manager emerged to handle the credential storage, making HTTPS
authentication more practical.&lt;/p&gt;
&lt;p&gt;In 2020 when GitHub released their CLI tool (&lt;code&gt;gh&lt;/code&gt;),
which uses OAuth for authentication and suddenly made getting started way
easier—no more fumbling through SSH key generation tutorials for newcomers.&lt;/p&gt;
&lt;p&gt;I used to have SSH keys installed on my Yubikey, but they were always a hassle
to set up and use. These days authenticating with &lt;code&gt;gh&lt;/code&gt; is definitely the way
to go.&lt;/p&gt;
&lt;p&gt;I also do quite a lot of open source contribution to GNOME's GitLab instance,
which seems to have completely missed the change to HTTPS that GitHub went
through. GitLab does have a CLI tool as well called &lt;code&gt;glab&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Clement Sam started &lt;code&gt;glab&lt;/code&gt; as an open source project, and then GitLab adopted
it in 2022. By default it wants to connect to gitlab.com using SSH, here's 
how you can set it up using GNOME GitLab and HTTPS.&lt;/p&gt;
&lt;p&gt;First &lt;a href="https://gitlab.gnome.org/-/user_settings/personal_access_tokens?scopes=api%2Cwrite_repository"&gt;create a new personal access token&lt;/a&gt;
with &lt;code&gt;write_repository&lt;/code&gt; and &lt;code&gt;api&lt;/code&gt; scopes.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;glab&lt;span class="w"&gt; &lt;/span&gt;config&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-g&lt;span class="w"&gt; &lt;/span&gt;host&lt;span class="w"&gt; &lt;/span&gt;gitlab.gnome.org
glab&lt;span class="w"&gt; &lt;/span&gt;config&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-g&lt;span class="w"&gt; &lt;/span&gt;git_protocol&lt;span class="w"&gt; &lt;/span&gt;https
glab&lt;span class="w"&gt; &lt;/span&gt;auth&lt;span class="w"&gt; &lt;/span&gt;login&lt;span class="w"&gt; &lt;/span&gt;--use-keyring&lt;span class="w"&gt; &lt;/span&gt;--hostname&lt;span class="w"&gt; &lt;/span&gt;gitlab.gnome.org
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Authenticate with your token that you just created. That's it-enjoy
contributing to GNOME!&lt;/p&gt;</description><category>GNOME</category><guid>https://dan.yeaw.me/posts/gnome-gitlab-cli/</guid><pubDate>Fri, 28 Nov 2025 20:54:51 GMT</pubDate></item><item><title>openSUSE with Passwordless U2F Login</title><link>https://dan.yeaw.me/posts/opensuse-with-passwordless-u2f-login/</link><dc:creator>Dan Yeaw</dc:creator><description>&lt;p&gt;&lt;img src="https://dan.yeaw.me/images/opensuse-yubikey.png" alt="openSUSE Geeko with Yubikey" style="max-height:400px"&gt;&lt;/p&gt;
&lt;p&gt;I have a &lt;a href="https://www.yubico.com/products/yubikey-5-overview/"&gt;Yubikey 5 NFC&lt;/a&gt;
that I use for 2-Factor Authentication (2FA) on websites that support it and for
storing my GPG keys.&lt;/p&gt;
&lt;p&gt;I recently got a new laptop, and I quickly got tired of trying to remember a
long new password. I have also gotten use to using things like Windows Hello at
work, where a pin or fingerprint can be used to Log in.&lt;/p&gt;
&lt;p&gt;Most of the articles I found about setting up U2F in Linux were using Ubuntu,
and since I am using openSUSE and some files are in different places, this post
documents that process. Although Universal 2nd Factor (U2F) on the Yubikey can
be used to add 2FA to make your Linux laptop more secure, my focus is on a
passwordless login so that I don't need to enter a long password at all to log
in to my Linux account.&lt;/p&gt;
&lt;p&gt;WARNING: An erroneous PAM configuration may lock you completely out of your
systems or prevent you from gaining root privileges. Before getting started,
open a terminal and su to root. Before closing the terminal, test your
configuration thoroughly.&lt;/p&gt;
&lt;h3&gt;Installing the Required Software&lt;/h3&gt;
&lt;p&gt;The openSUSE repository includes a package called &lt;code&gt;pam_u2f&lt;/code&gt;. This package adds U2F
support for Pluggable Authentication Modules (PAM). PAM provides the libraries
for Linux that allow configuration of authentication of users. In this case we
want to authenticate using a U2F module, so we install it by opening a terminal
and typing:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;zypper&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;pam_u2f
&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Associating the U2F Key With Your Account&lt;/h3&gt;
&lt;p&gt;The U2F PAM module needs to make use of an authentication file that associates
the user name that will login with the Yubikey token. Open a terminal and insert
your Yubikey.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;~/.config/Yubico
$&lt;span class="w"&gt; &lt;/span&gt;pamu2fcfg&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;whoami&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;~/.config/Yubico/u2f_keys
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;When your device begins flashing, touch the metal contact to confirm the association.&lt;/p&gt;
&lt;p&gt;For increased security, we'll next move the u2f_keys file to an area where
you'll need sudo permission to edit the file.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;/etc/Yubico
$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;mv&lt;span class="w"&gt;  &lt;/span&gt;~/.config/Yubico/u2f_keys&lt;span class="w"&gt; &lt;/span&gt;/etc/Yubico/u2f_keys
$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;chown&lt;span class="w"&gt; &lt;/span&gt;root.root&lt;span class="w"&gt; &lt;/span&gt;/etc/Yubico/u2f_keys
&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Edit the PAM Configuration&lt;/h3&gt;
&lt;p&gt;Once the u2f_keys file is moved to a safer location the PAM file will need to be
modified so that u2f PAM module can find the u2f_keys file. For these PAM
configurations, openSUSE creates configuration files, which end in "pc", 
generated by the &lt;code&gt;pam-config&lt;/code&gt; utility, and then symbolically links the PAM
configuration files to these. Unfortunately, we can't use pam-config to
configure the pam_u2f module, so we'll need to manually edit the config. To do
this, we will only need to make changes to the main PAM authorization
configuration called &lt;code&gt;common-auth&lt;/code&gt;, so first we need to remove the symbolic link
and then copy the configuration so that we can edit it.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/etc/pam.d
$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;rm&lt;span class="w"&gt; &lt;/span&gt;common-auth
$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;common-auth-pc&lt;span class="w"&gt; &lt;/span&gt;common-auth
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Now edit the configuration file that you created. I would normally use vim to
make a quick edit to a file, but I will use nano instead in case you aren't
familiar with vim commands:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;nano&lt;span class="w"&gt; &lt;/span&gt;common-auth
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Scroll to the bottom or hit Alt+/, there should be three lines that aren't commented out:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;auth    required        pam_env.so
auth    optional        pam_gnome_keyring.so
auth    required        pam_unix.so     try_first_pass
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;After the pam_gnome_keyring line, add a new line so that your file looks like:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;auth    required        pam_env.so      
auth    optional        pam_gnome_keyring.so
auth    sufficient      pam_u2f.so      authfile=/etc/Yubico/u2f_keys cue
auth    required        pam_unix.so     try_first_pass
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Let's discuss what this did:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;auth adds a new definition for login authorization&lt;/li&gt;
&lt;li&gt;sufficient allows a login with Yubikey only, but isn't required to login if
  the user's password is entered&lt;/li&gt;
&lt;li&gt;pam_u2f.so is the PAM U2F module&lt;/li&gt;
&lt;li&gt;authfile sets the authorization file that we created earlier&lt;/li&gt;
&lt;li&gt;cue creates a prompt to remind you to touch your Yubikey&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you are done adding the configuration line, save the file by pressing
Ctrl+x and then hit enter.&lt;/p&gt;
&lt;h3&gt;Test Logging In&lt;/h3&gt;
&lt;p&gt;Before you close your su terminal, make sure that logging in works using U2F. Using
a new terminal, try to login:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;su&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;whoami&lt;span class="k"&gt;)&lt;/span&gt;
Password:&lt;span class="w"&gt; &lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Instead of entering your password, hit enter. You should see a prompt to touch
your device:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;Please&lt;span class="w"&gt; &lt;/span&gt;touch&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;device.
$
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;If that is successful then congrats, you should now be able to restart your
computer and login using your Yubikey!&lt;/p&gt;
&lt;h3&gt;Troubleshooting - Enable Debug Mode&lt;/h3&gt;
&lt;p&gt;If you are unable to login and are unsure why, you can enable debugging on the
Yubico PAM module. First open a terminal, then execute:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;touch&lt;span class="w"&gt; &lt;/span&gt;/var/log/pam_u2f.log
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Edit the /etc/pam.d/common-auth file again and add &lt;code&gt;debug debug_file=/var/log/pam_u2f.log&lt;/code&gt;
to the end of the line that you added earlier. Save the file and now each
login attempt will be saved in the /var/log/pam_u2f.log file.&lt;/p&gt;
&lt;h3&gt;Unlock GNOME Keyring&lt;/h3&gt;
&lt;p&gt;If you are using GNOME, even though you successfully logged in with your Yubikey,
GNOME will still ask you to unlock your login keyring with your login password.
This defeats the purpose of setting up your Yubikey to login in the first place.
There is a project called
&lt;a href="https://git.recolic.net/root/gnome-keyring-yubikey-unlock"&gt;gnome-keyring-yubikey-unlock&lt;/a&gt;
that solves this by encrypting the keyring-name : password pair with GnuPG and
save it as secret-file. Then on starting GNOME, a script will automatically run
that calls GnuPG to decrypt the secret file, and pipe use the password to unlock
your keyring.&lt;/p&gt;
&lt;p&gt;To build and install it openSUSE, run the following commands: &lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;zypper&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;libgnome-keyring-devel&lt;span class="w"&gt; &lt;/span&gt;git
$&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;clone&lt;span class="w"&gt; &lt;/span&gt;https://git.recolic.net/root/gnome-keyring-yubikey-unlock&lt;span class="w"&gt; &lt;/span&gt;--recursive
$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;gnome-keyring-yubikey-unlock/src
$&lt;span class="w"&gt; &lt;/span&gt;make
$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;..
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Next we need to get your public key id:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;gpg&lt;span class="w"&gt; &lt;/span&gt;--list-keys
/home/dan/.gnupg/pubring.kbx
----------------------------
pub&lt;span class="w"&gt;   &lt;/span&gt;rsa4096&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2020&lt;/span&gt;-12-22&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;SC&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;30EE9BFEC3FD0B37F9088DBE42239C515C9B9841
uid&lt;span class="w"&gt;           &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;ultimate&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Dan&lt;span class="w"&gt; &lt;/span&gt;Yeaw&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;dan@yeaw.me&amp;gt;
sub&lt;span class="w"&gt;   &lt;/span&gt;rsa4096&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2021&lt;/span&gt;-11-10&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;A&lt;span class="o"&gt;]&lt;/span&gt;
sub&lt;span class="w"&gt;   &lt;/span&gt;rsa4096&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2021&lt;/span&gt;-11-10&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;E&lt;span class="o"&gt;]&lt;/span&gt;
sub&lt;span class="w"&gt;   &lt;/span&gt;rsa4096&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2021&lt;/span&gt;-11-10&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;S&lt;span class="o"&gt;]&lt;/span&gt;
sub&lt;span class="w"&gt;   &lt;/span&gt;rsa4096&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2020&lt;/span&gt;-12-22&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;E&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The hexadecimal id that starts with 30EE9BF is my public gpg key id. Next we are going
to create the encrypted keyring password pair. Replace YOUR_PUBLIC_GPG_KEY with your
public gpg key id from the last step and replace YOUR_LOGIN_PASSWORD with the password
for your user account.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;./create_secret_file.sh&lt;span class="w"&gt; &lt;/span&gt;~/.gnupg/gnome_keyring_yubikey_secret&lt;span class="w"&gt; &lt;/span&gt;YOUR_PUBLIC_GPG_KEY
&amp;gt;&amp;gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;Please&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;keyring_name&lt;span class="w"&gt; &lt;/span&gt;and&lt;span class="w"&gt; &lt;/span&gt;password&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;following&lt;span class="w"&gt; &lt;/span&gt;format:

keyring1:password1
keyring2:password2

login:12345678

&amp;gt;&amp;gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;When&lt;span class="w"&gt; &lt;/span&gt;you&lt;span class="w"&gt; &lt;/span&gt;are&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;done&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;use&lt;span class="w"&gt; &lt;/span&gt;Ctrl-D&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;end.
login:YOUR_LOGIN_PASSWORD
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Next we want to change the permissions of the file, so that only your user can read
and write to the file:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;chmod&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;600&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;~/.gnupg/gnome_keyring_yubikey_secret
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Finally, create an autostart entry so that the script loads when you login to GNOME:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;$&lt;span class="w"&gt; &lt;/span&gt;nano&lt;span class="w"&gt; &lt;/span&gt;~/.config/autostart/net.recolic.gnome-keyring-yubikey-unlock.desktop
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Add the following to the file, replacing YOUR_USER with your username:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="o"&gt;[&lt;/span&gt;Desktop&lt;span class="w"&gt; &lt;/span&gt;Entry&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="nv"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Application
&lt;span class="nv"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/YOUR_USER/Projects/gnome-keyring-yubikey-unlock/unlock_keyrings.sh&lt;span class="w"&gt; &lt;/span&gt;/home/YOUR_USER/.gnupg/gnome_keyring_yubikey_secret
&lt;span class="nv"&gt;Hidden&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;
X-GNOME-Autostart-enabled&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;
&lt;span class="nv"&gt;Name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;GNOME&lt;span class="w"&gt; &lt;/span&gt;Keyring&lt;span class="w"&gt; &lt;/span&gt;Yubikey&lt;span class="w"&gt; &lt;/span&gt;Unlock
&lt;span class="nv"&gt;Comment&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Unlocks&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;GNOME&lt;span class="w"&gt; &lt;/span&gt;Login&lt;span class="w"&gt; &lt;/span&gt;Keyring&lt;span class="w"&gt; &lt;/span&gt;without&lt;span class="w"&gt; &lt;/span&gt;password
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Hit Control+x and then enter to save the file. Restart your computer, and you
should now be able to login and run openSUSE without manually entering your
password.&lt;/p&gt;</description><category>openSUSE</category><category>Yubikey</category><guid>https://dan.yeaw.me/posts/opensuse-with-passwordless-u2f-login/</guid><pubDate>Sat, 23 Jan 2021 21:26:49 GMT</pubDate></item></channel></rss>