refactor: moved to hugo
This commit is contained in:
		
							parent
							
								
									4c6912edd0
								
							
						
					
					
						commit
						e77e5583c2
					
				
					 604 changed files with 1675 additions and 2279 deletions
				
			
		| 
						 | 
				
			
			@ -0,0 +1,104 @@
 | 
			
		|||
+++
 | 
			
		||||
title = "How to install and configure the yubikey-pam module on archlinux"
 | 
			
		||||
date = 2013-07-09
 | 
			
		||||
+++
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Not so long ago I've been gifted with a Yubikey. It's a two-auth hardware
 | 
			
		||||
solution with multiple auth methods (OTP, Challenge-response, OATH-HOTP and
 | 
			
		||||
static password). It easily scaled to one of my favourite and most useful
 | 
			
		||||
gadgets.
 | 
			
		||||
 | 
			
		||||
I've been a google authenticator user for a while, but the yubikey is just
 | 
			
		||||
much easier to work with: when configured, you only need to tap a button on
 | 
			
		||||
the usb stick to generate your key. You can use this in many ways, but in this
 | 
			
		||||
post I'm focusing on ssh authentication and how to install the yubico-pam
 | 
			
		||||
module into an Arch installation.
 | 
			
		||||
 | 
			
		||||
## Installing the required packages
 | 
			
		||||
 | 
			
		||||
Thanks to the awesome arch community we already have the needed packages on
 | 
			
		||||
the AUR, these are: [yubico-pam-
 | 
			
		||||
git](https://aur.archlinux.org/packages/yubico-pam-git/), [yubico-c-client-
 | 
			
		||||
git](https://aur.archlinux.org/packages/yubico-c-client-git/), [yubikey-
 | 
			
		||||
personalization-git](https://aur.archlinux.org/packages/yubikey-
 | 
			
		||||
personalization-git/) and
 | 
			
		||||
[libyubikey](https://aur.archlinux.org/packages/libyubikey/). Keep in mind
 | 
			
		||||
that you _may_ need to install more packages depending on your system
 | 
			
		||||
installation.
 | 
			
		||||
 | 
			
		||||
You can install that with your favourite AUR helper or using `makepkg`:
 | 
			
		||||
 | 
			
		||||
``` text
 | 
			
		||||
$ curl -O https://aur.archlinux.org/packages/li/libyubikey/libyubikey.tar.gz
 | 
			
		||||
$ tar xvzf libyubikey.tar.gz
 | 
			
		||||
$ cd libyubikey
 | 
			
		||||
$ makepkg PKGBUILD
 | 
			
		||||
# ...
 | 
			
		||||
$ sudo pacman -U libyubikey-1.10-2-x86_64.pkg.tar.xz
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Repeat that step for all the packages, in order: _libyubikey_, _yubico-c-
 | 
			
		||||
client_, _yubikey-personalization_ and _yubico-pam_. If you have trouble
 | 
			
		||||
installing from the AUR [refer to the appropiate wiki
 | 
			
		||||
page](https://wiki.archlinux.org/index.php/AUR#Installing_packages).
 | 
			
		||||
 | 
			
		||||
## Configure the PAM module
 | 
			
		||||
 | 
			
		||||
Edit `/etc/pam.d/sshd` and add on top on the rest of the auth modules:
 | 
			
		||||
 | 
			
		||||
``` text
 | 
			
		||||
auth sufficient pam_yubico.so id=XXXX key=XXXX
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You can obtain an ID/key conbination by registering your yubikey [at this
 | 
			
		||||
page](https://upgrade.yubico.com/getapikey/).
 | 
			
		||||
 | 
			
		||||
## Authorization methods
 | 
			
		||||
 | 
			
		||||
### Individual authorization mapping
 | 
			
		||||
 | 
			
		||||
If your server have multiple users this is the easiest method to let them
 | 
			
		||||
configure their yubikeys. You just need to create the file
 | 
			
		||||
`$HOME/.yubico/authorized_yubikeys` with the following contents:
 | 
			
		||||
 | 
			
		||||
``` text
 | 
			
		||||
<username>:<Yubikey token ID 1>[:<Yubikey token ID 2][:...]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The yubikey token identifier can be obtained by removing the last 32
 | 
			
		||||
characters of any OTP value, and you can add more than one ID to the file.
 | 
			
		||||
 | 
			
		||||
Restart your ssh server to apply the changes.
 | 
			
		||||
 | 
			
		||||
### Central authorization mapping
 | 
			
		||||
 | 
			
		||||
Create a file on `/etc/yubikey_mappings` that will contain all your users and
 | 
			
		||||
their respective yubikey token identifiers, like this:
 | 
			
		||||
 | 
			
		||||
``` text
 | 
			
		||||
<first username>:<Yubikey token ID 1>[:<Yubikey token ID 2][:...]
 | 
			
		||||
<second username>:<Yubikey token ID 3>[:<Yubikey token ID 4][:...]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
For this to work, you need to specify this file to the pam module `authfile`
 | 
			
		||||
parameter:
 | 
			
		||||
 | 
			
		||||
``` text
 | 
			
		||||
auth sufficient pam_yubico.so id=XXXX key=XXXX authfile=/etc/yubikey_mappings
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
After that estart your ssh server to apply the changes.
 | 
			
		||||
 | 
			
		||||
## Logging in
 | 
			
		||||
 | 
			
		||||
The next time you're asked for a password on you ssh login you can use a
 | 
			
		||||
yubikey OTP instead of your current password -if you have any-.
 | 
			
		||||
 | 
			
		||||
This method works pretty well with authorized ssh keys as well, since you will
 | 
			
		||||
log-in automatically from a computer with a configured ssh key but an OTP -or
 | 
			
		||||
password- will be required for logging in from anywhere else.
 | 
			
		||||
 | 
			
		||||
**Yubico-pam module |** [Github](https://github.com/Yubico/yubico-pam)
 | 
			
		||||
**Yubico |** [Home page](http://www.yubico.com/)
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 47 KiB  | 
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue