Existe-t-il un générateur de code de vérification d'authentification à deux facteurs en ligne de commande?

23

Je gère un serveur avec une authentification à deux facteurs. Je dois utiliser l'application iPhone Google Authenticator pour obtenir le code de vérification à 6 chiffres à saisir après avoir entré le mot de passe normal du serveur. La configuration est décrite ici: http://www.mnxsolutions.com/security/two-factor-ssh-with-google-authenticator.html

Je voudrais un moyen d'obtenir le code de vérification en utilisant uniquement mon ordinateur portable et non mon iPhone. Il doit y avoir un moyen d'amorcer une application en ligne de commande qui génère ces codes de vérification et vous donne le code de la fenêtre actuelle de 30 secondes.

Y a-t-il un programme qui peut le faire?

dan
la source

Réponses:

24

Oui, oathtoolje peux le faire. Vous devrez le semer avec le secret partagé de votre serveur.

Vous pouvez l'installer à partir du oath-toolkitpackage.

EEAA
la source
Est-ce compatible avec le module PAM de Google Authenticator? Il semble comme un autre (bien que fonctionnellement équivalent) bête ...
voretaq7
2
Oui - avec le --totpdrapeau, il implémente le même alg TOTP conforme aux normes que Google Authenticator.
EEAA
2
Ça l'est oathtool. Dans de nombreux cas, vous avez besoin des deux --totpet du -bdrapeau (décodage base32)
Zouppen
1
FWIW, j'ai écrit un wrapper shell pour oathtool qui est fonctionnellement équivalent à Authy sur la CLI: github.com/poolpog/bash-otp
JDS
FWIW: J'ai écrit un wrapper C qui utilise libpam-google-authenticatorpour vérifier les jetons. Voir github.com/hilbix/google-auth - dans le LISEZMOI, la fonction est checktotpaffichée. Retirez simplement le | fgrep -qx "$1";pour voir les jetons.
Tino
3

Il existe de nombreuses implémentations Authenticator tierces. Consultez la liste sur la page wikipedia . Par exemple, vous pourrez peut-être utiliser onetimepass (qui est écrit en Python) pour une utilisation en ligne de commande.

Jeff VanNieulande
la source
3

Il existe également une implémentation go sur github sur https://github.com/pcarrier/gauth

Celui-ci utilise un fichier de configuration ~/.config/gauth.csvpour stocker les jetons au format suivant

[email protected]: abcd efg hijk lmno
aws-account: mygauthtoken

Et la sortie est plutôt sympa aussi:

$ gauth
           prev   curr   next
AWS        315306 135387 483601
Airbnb     563728 339206 904549
Google     453564 477615 356846
Github     911264 548790 784099
[=======                      ]
Adam Terrey
la source
2

Pour autant que je sache, Google ne publie que l'application Authenticator pour les téléphones (iOS, Android).
(Cela pose un problème pour les gens paranoïaques comme moi, qui ne font pas vraiment confiance à l'histoire de Google d'interrompre les services sans préavis, et préféreraient un générateur de jetons que nous pouvons voir à l'intérieur.)

Vous pouvez envisager d'autres alternatives, comme un système de bloc de mots de passe à usage unique .


Honnêtement, obtenir le code de vérification de votre ordinateur portable vainc le type d'authentification à deux facteurs (toute personne qui capture l'ordinateur portable a maintenant le générateur de code - cela fait partie de ce qu'Authenticator est censé protéger).

voretaq7
la source
Je suis d'accord avec le sentiment qu'un appareil séparé est fondamentalement nécessaire pour 2FA. Cependant, ce périphérique secondaire pourrait-il être un serveur distant ?
Jerry
1
Stocker votre secret TOTP sur votre ordinateur portable au lieu de votre téléphone est encore beaucoup, bien mieux que pas du tout TOTP si vous ne stockez pas votre mot de passe sur votre ordinateur portable (par exemple, dans l'agent de mot de passe de votre navigateur). Les attaquants MITM (tels que les enregistreurs de frappe) n'ont pas accès au secret TOTP, juste au code temporel, et ne capturent donc les informations d'authentification que pendant une minute ou deux. Un ordinateur portable volé possède le secret TOTP, mais pas le mot de passe. (Vous devrez utiliser un mot de passe plus faible pour le rendre mémorable, mais ce n'est pas grave avec TOTP.) Faire en sorte que les attaquants reniflent le mot de passe et volent le secret complique leur tâche.
Curt J. Sampson
Une dernière remarque: TOTP tel qu'il est pratiqué n'est techniquement pas une authentification à deux facteurs au sens strict, car le mot de passe et le secret TOTP sont «quelque chose que vous connaissez». Les deux peuvent être copiés à l'insu du propriétaire de la perte de confidentialité.
Curt J. Sampson
1

Vous pouvez essayer http://soundly.me/oathplus

C'est un outil que j'ai développé en plus du vénérable oathtool, qui vous permet de lire les codes QR et de cacher les informations de compte OTP pour une utilisation ultérieure. Vous pouvez le considérer comme Google Authenticator pour la ligne de commande, car il peut télécharger et lire des codes QR et consommer des otpauth://URI. (OSX uniquement atm.)

pot
la source
0

Une ligne de commande Windows gauth.exe à utiliser depuis vim, lors de la modification d'un fichier contenant des codes gauth.

https://github.com/moshahmed/gauth/releases/download/mosh1/gauth-vim-stdin-win7-2019-01-08.zip

C'est un fork de https://github.com/pcarrier/gauth à compiler sur windows7.

Test / utilisation:

c:\Go\src\cmd\vendor\github.com\pcarrier\gauth-vim-stdin-win7> echo "dummy1: ABCD" | gauth.exe
prev curr next
dummy1 562716 725609 178657
[== ]

Usage from vim, when your cursor is on line
"dummy1: ABCD"
: . w ! gauth
" temp shell window popup with codes.
mosh
la source