我已在我的 Outlook 帐户(Microsoft)上启用了 2FA。它要求我下载 Microsoft Authenticator 应用程序并给了我一个 9 位数字,例如“123456789”。
我不想使用 MS 应用程序,我可以使用 oathtool 吗?
我尝试了以下所有操作,但都出现了相同的错误:“oathtool:密钥十六进制解码失败“
oathtool -w 123456789
oathtool -b --totp '123456789'
oathtool --base32 --totp "123456789"
答案1
这不是 TOTP 密钥 – 它是专门用于 Microsoft Authenticator 在线设置的配对代码(最有可能用于其“推送”2FA 功能)。
在此过程中,你应该有一个“设置不同的身份验证器应用程序”的链接:
该链接将带你进入一个页面包含二维码。扫描它(zbarimg
如果需要的话使用)或单击“我无法扫描代码”,页面将显示 TOTP 密钥。
请注意,密钥(在几乎所有网站上)都采用 Base32 格式,而不是十六进制。
如果您看到的流程不同,请访问https://account.live.com/proofs/manage/additional并选择“添加新方式”。
答案2
我认为您的问题在于您从在线手册中复制了代码并在您的命令中使用它。
文章 在线手册中的示例令人烦恼 描述问题:
在以下页面上http://www.nongnu.org/oath-toolkit/oathtool.1.html http://www.nongnu.org/oath-toolkit/oathtool.1.html有几个例子。复制/粘贴这些内容(至少从 Mac 上的 Firefox 复制/粘贴)到终端中,对于其中许多内容,都会失败,并给出“oathtool:密钥十六进制解码失败”之类的错误。
这是因为在网页上,诸如“—totp”之类的参数中的破折号实际上是 Unicode 减号 U+2212,而不是程序所期望的 ASCII 破折号 (0x2d)。
如果是这个问题,我建议通过从另一个终端中的“man oathtool”复制/粘贴来获取您的示例。