是否有命令行两因素身份验证验证码生成器?


23

我使用两因素身份验证管理服务器。输入正常的服务器密码后,我必须使用Google Authenticator iPhone应用程序获取要输入的6位验证码。此处描述了该设置:http : //www.mnxsolutions.com/security/two-factor-ssh-with-google-authenticator.html

我想要一种仅使用笔记本电脑而不是通过iPhone获取验证码的方法。必须有一种方法来植入命令行应用程序,该应用程序会生成这些验证代码并为您提供当前30秒窗口的代码。

有程序可以做到这一点吗?

Answers:


24

是的,oathtool可以这样做。您需要使用服务器上的共享机密为它播种。

您可以从oath-toolkit软件包中安装它。


这与Google Authenticator PAM模块兼容吗?似乎是另一种(虽然功能上相同)的野兽……
voretaq7

2
是的-带有--totp标志,它实现了与Google Authenticator相同的符合标准的TOTP算法。
EEAA 2013年

2
oathtool。在许多情况下,您需要同时使用--totp-b标志(base32解码)
Zouppen

1
FWIW,我为oathtool写了一个外壳包装程序,功能上等效于CLI上的Authy
JDS

FWIW:我写了一个C-wrapper,用于libpam-google-authenticator验证令牌。参见github.com/hilbix/google-auth-在自述文件中checktotp显示了功能。只需删除| fgrep -qx "$1";即可查看令牌。
蒂诺


3

github上还有一个go实现,位于https://github.com/pcarrier/gauth

这个使用配置文件~/.config/gauth.csv以以下格式存储令牌

me@gmail.com: abcd efg hijk lmno
aws-account: mygauthtoken

输出也相当友好:

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

2

据我了解,Google仅发布了用于手机(iOS,Android)的Authenticator应用程序。
(这给像我这样的偏执狂人带来了一个问题,他们真的不信任Google停止服务的历史而很少引起注意,并且希望使用我们可以在其中看到的令牌生成器。)

您可以考虑其他替代方法,例如一次性密码键盘系统


老实说,从笔记本电脑获取验证码会破坏两因素身份验证方面(现在捕获笔记本电脑的任何人都具有代码生成器,这是Authenticator应当防止的一部分)。


我同意2FA从根本上需要一个单独的设备这一观点。但是,该辅助设备可以是远程服务器吗?
杰里·

1
如果您没有在笔记本电脑上(例如,在浏览器的密码代理中)存储密码,那么将TOTP秘密存储在笔记本电脑而不是手机上仍然要比不使用TOTP更好。MITM攻击者(例如按键记录程序)无权访问TOTP机密,而只能访问基于时间的代码,因此只能在一两分钟内捕获正确的身份验证信息。被盗的笔记本电脑拥有TOTP机密,但没有密码。(您需要使用较弱的密码才能使它令人难忘,但这在TOTP中是可以的。)使攻击者既嗅探密码窃取机密,会使他们的任务复杂化。
Curt J. Sampson

还有一点要注意:从技术上来讲,严格意义上讲,TOTP并不是双重身份验证,因为密码和TOTP机密都是“您知道的东西”。在所有者不知道秘密丢失的情况下,任何一种都可以被复制。
Curt J. Sampson

1

您可以尝试http://soundly.me/oathplus

这是我在venerable的基础上开发的工具oathtool,可让您读取QR码并保存OTP帐户信息以备后用。您可以将其视为命令行的Google Authenticator,因为它可以下载和读取QR码以及使用otpauth://URI。(仅OSX atm。)


0

编辑包含gauth代码的文件时,可从vim使用的Windows命令行gauth.exe。

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

它是https://github.com/pcarrier/gauth的一个分支,可在Windows7上进行编译。

测试/用法:

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.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.