La YubiKey proporciona autenticación con PIV. Cómo puedo utilizar mi certificado de tarjeta inteligente YubiKey para conectarme de forma segura a otros hosts con SSH utilizando el método de clave pública?
Respuesta
¿Demasiados anuncios?Para ello necesitas el Yubikey libykcs11
lo que te permite usarlo como clave privada de ssh y si quieres cargarlo en ssh-agent.
prerrequisitos: Homebrew, xcode
-
instalar xcode como requisito previo para Homebrew
xcode-select --install
-
activar Homebrew https://brew.sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
ampliar el perfil de acuerdo con el resultado de la instalación de Homebrew; lo siguiente es válido en los MacOS basados en ARM; en los Macs de Intel el directorio base de Homebrew es /usr/local
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"
-
instalar la biblioteca PIV de Yubikey https://github.com/Yubico/yubico-piv-tool/issues/118
brew install yubico-piv-tool
-
Ahora coloque la libra requerida en /usr/local/lib para hacerla utilizable para openssh. Es necesario que copia la lib. Por razones de seguridad, un enlace simbólico no funcionará en MacOS (recuerde buscar la librería en /usr/local en un MacOS basado en Intel).
sudo mkdir -p /usr/local/lib sudo cp /opt/homebrew/lib/libykcs11.dylib /usr/local/lib/libykcs11_NOTALINK.dylib
usando tu llave con openssh
Para utilizar la clave privada de tu tarjeta inteligente necesitas hacer referencia a la biblioteca anterior a los comandos de openssh.
-
simplemente conéctate con el comando ssh:
ssh -I /usr/local/lib/libykcs11_NOTALINK.dylib user@hostname
-
extraer la clave pública de la tarjeta inteligente para poder utilizarla en archivos .ssh/authorized_keys o aplicaciones como git
ssh-keygen -D /usr/local/lib/libykcs11_NOTALINK.dylib -e
-
cargar la clave privada de la tarjeta inteligente en ssh-agent
ssh-add -s /usr/local/lib/libykcs11_NOTALINK.dylib
-
eliminar la clave privada de la tarjeta inteligente de ssh-agent
ssh-add -d /usr/local/lib/libykcs11_NOTALINK.dylib