vorhandene ssh keys in das piv applet von einem yubikey importieren
soll ein vorhandener ssh schlüssel in das piv applet von einem yubikey importiert werden, ist es nötig das vorab die schlüssel in das pem format gebracht werden.
seit einigen versionen von ssh wird ein neues format verwendet, weshalb der private key in das alte format konvertiert werden muss.
ssh-keygen -p -N "" -m pem -f /path/to/key
private key
openssl rsa -in ~/.ssh/id_rsa -out id_rsa.pem -outform pem
public key
ssh-keygen -e -f ~/.ssh/id_rsa.pub -m PKCS8 > id_rsa.pub.pkcs8
anschließend wird der private schlüssel auf den yubi-key in den slot 9a importiert.
die option „–touch-policy“ legt fest ob der knopf auf dem yubikey gedrückt werden muss um die eingäbe zu akzeptieren.
den privaten schlüssel importieren
yubico-piv-tool -a import-key -s 9a -i id_rsa.pem --touch-policy=never
das selbstsignierte Zertifikat wird mit dem vorher konvertierten public key erstellt.
ein selbstsigniertes zertifikat erstellen
yubico-piv-tool -a verify-pin -a selfsign-certificate --valid-days 3650 -s 9a
-S "/CN=SSH key/" -i id_rsa.pub.pkcs8 -o cert.pem
nach dem import des Zertifikats ist ist das piv-applet auf dem yubikey benutzbar.
das selbstsiegnierte zertifikat wieder importieren
yubico-piv-tool --key -a import-certificate -s 9a -i cert.pem
mit
ssh-keygen -D /usr/local/opt/opensc/lib/opensc-pkcs11.so -e
wird der public key aus dem yubikey ausgegeben welcher dann auf in die .ssh/authorized_keys auf dem remotesystem eingefügt werden kann.