Passkey Routine

Ausschnitt für Bash-Scripts zur Abfrage eines Passkeys.

Dieser Ausschnitt (Subroutine) fragt einen FIDO2-fähigen Security Schlüssel zur Identifikation ab, wenn beispielsweise ein Skript ausgeführt wird, das Dateien zwischen zwei Rechnern über rsync/ssh kopieren/abgleichen soll, ohne UDEV zu bemühen. Es ist ein infiniter Loop, der so lange läuft, bis ein gültiger Schlüssel eingesteckt wird. Die Wartezeit beträgt 10 Sekunden und die Aufforderung den Schlüssel einzustecken wird also in diesem Intervall wiederholt.

echo " Checking for Passkey"
CHECKPASS=0

while [ "$CHECKPASS" = "0" ]
do
"PASSKEY=`lsusb | grep FIDO2 | awk '{ print $8 }'` "
if [ -z "$PASSKEY" ]; then
echo "Please insert Passkey" ; sleep 10
else
CHECKPASS=1
echo "Passkey found"
fi
done

Die Anführungszeichen (fett) bei der Zeile: PASSKEY=`lsusb....`müssen für die Verwendung im Skript am Anfang und am Schluss der Zeile entfernt werden. Leider werden die (linksgerichteten!) Hochkommas nicht dargestellt, wenn keine Anführungszeichen gesetzt werden. (Darstellungsproblem Blog.)

Um festzustellen, ob der Key FIDO2 kann, einfach in einer Shell das Kommando: lsusb | grep FIDO2 eingeben und sehen was zurückgegeben wird.

! Der Code setzt voraus, dass zuvor ein gültiger SSH-Key mit Typ ecdsa-sk für den Zielrechner erstellt und auf den Zielrechner kopiert wurde. Bsp.

cd $HOME/.ssh
ssh-keygen -t ecdsa-sk -C "($(hostname)-$(date +'%d-%m-%Y')-mypasskey-1"
ssh-copy-id -i id_ecdsa-mypasskey-1.pub [User]@[Zielrechner]

Zum Datenabgleich zwischen zwei Rechnern sollte auch das Programm „Unison“ in Betracht gezogen werden. Bei der Ausführung von unison, ist diese Routine nicht notwendig. Linux (Ubuntu), Kommando: sudo apt info unison

Comment