PW> Apparently I need to "purchase an inexpensive OATH TOTP compatible PW> token device."
Here's another "thumbs-up" for the pkg "oath-toolkit". I drive its oathtool(1) with a simple, rwx------ shell wrapper which collects my personal seed secrets and tells me both the current and upcoming TOTP, syncing on the HH:MM:{00,30} switch-overs. (With an intentional off-by-one, cannot remember why I preferred it that way, though. The sample seeds below are not the real thing -- no worries.) Oh: exit the loop with Ctrl-C. Martin Neitzel #!/bin/sh case "$1" in -h*|-hzi) secret=LDCKNdVBUJUWMCDBCDOKQSDLC ;; -g*|-github) secret=KMSXBBSPVOFBWCKX ;; -m*|-microsoft) secret=sxok3dck8skxn9sx ;; -o*|-oci) secret="SLODCNCDJNCDJBDCJBDCJBSXNI" ;; -*) echo "$1: no such option" 1>&2 ; exit 1 ;; ?*) secret=$1 ;; "") echo "usage: $0 [ -h | -m | -g | -o | <SECRET> ]" exit 1 ;; esac trap "exit 0" INT while true; do t=`date +%S` date +"%T, current & next token (changes on seconds :00 and :30):" oathtool --totp -w1 -b $secret # gotcha! $t may come as 08 or 09 which would be illegal octal # numbers -- so we need to nuke a leading "0": sleep $(( 1 + 30 - (${t#0} % 30) )) done