mirror of
https://git.myvelabs.com/lab/archlinux.git
synced 2025-12-17 22:56:25 +00:00
86 lines
3 KiB
Bash
Executable file
86 lines
3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
echo
|
|
|
|
[ -d ~/.config/Yubico ] || mkdir -p ~/.config/Yubico
|
|
|
|
sudo pacman -S --ask 4 pam-u2f yubico-pam
|
|
|
|
read -n 1 -s -p $'\n\e[1;33mInsert your yubikey and press the enter key to continue \e[0m'
|
|
echo -e '\n\e[1mTouch the yubikey when it starts blinking\e[0m'
|
|
|
|
pamu2fcfg > ~/.config/Yubico/u2f_keys
|
|
|
|
read -n 1 -p $'\n\e[1mWould you like to add another yubikey? (y/n): \e[0m' YUBIKEY
|
|
|
|
until [[ "$YUBIKEY" = [nN] ]]
|
|
do
|
|
if [[ "$YUBIKEY" != [yYnN] ]]
|
|
then
|
|
echo -e '\n\n\e[1;31mNot a valid answer, type "y" or "n"\e[0m'
|
|
read -n 1 -p $'\e[1mWould you like to add another yubikey? (y/n): \e[0m' YUBIKEY
|
|
elif [[ "$YUBIKEY" = [yY] ]]
|
|
then
|
|
read -n 1 -s -p $'\n\n\e[1;33mInsert the next yubikey and press the enter key to continue \e[0m'
|
|
echo -e '\n\e[1mTouch the yubikey when it starts blinking\e[0m'
|
|
|
|
pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
|
|
|
|
read -n 1 -p $'\n\e[1mWould you like to add another yubikey? (y/n): \e[0m' YUBIKEY
|
|
fi
|
|
done
|
|
|
|
echo -e '\n\n\e[1;33mUpdating pam configs'
|
|
echo -e 'Open another terminal or tty and login as sudo in case an issue comes up'
|
|
read -n 1 -s -p $'Press the enter key once logged in as sudo in another terminal or tty \e[0m\n'
|
|
|
|
# System wide user authentication
|
|
sudo sed -i '/^auth .* required .* pam_faillock.so .* authsucc/a\
|
|
auth required pam_u2f.so' /etc/pam.d/system-auth
|
|
|
|
# Polkit authentication
|
|
sudo sed -i '/^#%PAM.*/a\
|
|
auth sufficient pam_u2f.so' /etc/pam.d/polkit-1
|
|
|
|
# Sudo authentication
|
|
sudo sed -i '/^#%PAM.*/a\
|
|
auth sufficient pam_u2f.so' /etc/pam.d/sudo
|
|
|
|
# KDE lockscreen authentication
|
|
sudo sed -i '/^#%PAM.*/a\
|
|
auth required pam_u2f.so' /etc/pam.d/kde
|
|
|
|
cat > ~/.local/functions/add-yubikey <<- 'ADDYUBIKEY'
|
|
# Add a new yubikey
|
|
function add-yubikey
|
|
{
|
|
read -n 1 -s -p $'\n\e[1;33mInsert your yubikey and press the enter key to continue \e[0m'
|
|
echo -e '\n\e[1mTouch the yubikey when it starts blinking\e[0m'
|
|
|
|
pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
|
|
|
|
read -n 1 -p $'\n\e[1mWould you like to add another yubikey? (y/n): \e[0m' YUBIKEY
|
|
until [[ "$YUBIKEY" = [nN] ]]
|
|
do
|
|
if [[ "$YUBIKEY" != [yYnN] ]]
|
|
then
|
|
echo -e '\n\n\e[1;31mNot a valid answer, type "y" or "n"\e[0m'
|
|
read -n 1 -p $'\e[1mWould you like to add another yubikey? (y/n): \e[0m' YUBIKEY
|
|
elif [[ "$YUBIKEY" = [yY] ]]
|
|
then
|
|
read -n 1 -s -p $'\n\n\e[1;33mInsert the next yubikey and press the enter key to continue \e[0m'
|
|
echo -e '\n\e[1mTouch the yubikey when it starts blinking\e[0m'
|
|
|
|
pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
|
|
|
|
read -n 1 -p $'\n\e[1mWould you like to add another yubikey? (y/n): \e[0m' YUBIKEY
|
|
fi
|
|
done
|
|
echo -e '\n\n\e[1;34mYubikeys updated'
|
|
echo -e 'Exiting...\e[0m\n'
|
|
}
|
|
ADDYUBIKEY
|
|
|
|
echo -e '\n\e[1;34mYubikey setup completed'
|
|
echo -e 'To update your saved yubikeys, run "add-yubikey" in the terminal'
|
|
echo -e 'Exiting...\e[0m\n'
|
|
rm -f ${0}
|