如何使用双因素身份验证
如何使用双因素身份验证
需要npm版本5.5.1或更高版本
你是谁,你是谁?我们仔细检查一下。
为了满足日益增长的强大数字安全需求,npm推出了双因素身份验证(2FA)或(tfa)版本5.5.1。双因素身份验证可通过以下两种方法确认您的身份,从而防止未经授权访问您的帐户:
- 你知道的东西(比如你的用户名和密码)
例如,如果您的银行使用2FA,则当您首次登录在线银行系统时,银行会将代码发送到您的手机号码,然后提示您在线输入代码。这证明手机是您手中的,并将其与您的帐户相关联以进行身份验证。在此之后,只要银行检测到任何异常情况,例如从其他笔记本电脑登录,它就会向您的手机发送一个临时代码,您必须先输入该代码才能登录。这提供了额外的安全层,因为即使有人获得了您的登录凭据,他们也不太可能拥有您的设备。即使有人找到您的手机,他们也不太可能破解您的笔记本电脑的密码。
双因素身份验证可以防御攻击,我们建议您使用npm帐户实现此功能。
制备
要使用您的npm帐户启用2FA,您将需要一个可以生成一次性密码或OTP的应用程序。例如,Authy 或 Google Authenticator 可以生成一次性密码(OTP)。这些产品使用基于时间的一次性密码算法(TOTP)来创建临时代码。在移动设备或第二台笔记本电脑上安装应用程序,当您在npm帐户中工作时,该笔记本电脑始终可用。(注意:npm不使用SMS(文本到电话)作为验证用户的方法。)
认证级别
有两种级别的身份验证,auth-only
和auth-and-writes
。
如果在auth-only
模式下启用2FA ,则在您执行以下操作时,npm将需要OTP:
- 登录
如果在auth-and-writes
模式下启用2FA ,这是默认设置,当您执行以下操作时,npm将需要OTP:
- 登录
另请参阅本章末尾的表格。
如何启用2FA?
要设置双因素身份验证,您可以使用:
- 来自网站的配置文件设置 。
本章将介绍这两种方法。选择您最喜欢的方法。
从网络启用2FA
双因素身份验证现在可从网站上作为配置文件设置使用。
- 登录npmjs.com。
- 单击配置文件设置
- 向下滚动到“安全”部分:
- 在下一页输入您的密码:
- 在下一个屏幕上,选择所需的2FA级别。
注意:如果您不确定所需的设置,请参阅本章末尾的表格。
- 单击加号以启用所需级别。(如果愿意,您可以稍后更改级别。)
将出现QR码(在屏幕截图中,出于安全原因,代码被屏蔽)。
- 按照屏幕上的说明扫描QR码,然后输入。
npm将显示恢复代码。如果您丢失或忘记了第二个因素设备(例如,如果您没有手机),则将使用恢复代码登录。
打印,截屏并将这些恢复代码保存在非第二要素设备附近的位置。您的密码管理器可能会提供一种安全保存方法。
成功!您将看到您的“个人资料”页面,其中包含确认您已设置tfa的消息,以及页面“安全性”部分中的指示符。
从命令行启用2FA
键入符合要应用的安全级别的命令(默认为auth-and-writes)。
npm profile enable-2fa
npm profile enable-2fa auth-and-writes
npm profile enable-2fa auth-only
npm将返回此消息:
> npm notice profile Enabling two factor authentication for auth-and-writes
或者这条消息:
> npm notice profile Enabling two factor authentication for auth-only
取决于您提供的设置。
接下来,npm将显示QR码:
- 在您的身份验证器应用中添加一个新帐户。
这将配置身份验证器应用程序以供将来使用,将身份验证链接到生成身份验证的设备。
使用您的身份验证器应用程序,在显示的提示符下输入OTP:
Add an OTP code from your authenticator:
输入一次性密码后,npm将显示以下消息:
2FA successfully enabled.
Below are your recovery codes, please print these out.
You will need these to recover access to your account
if you lose your authentication device.
应用双因素身份验证后,可以使用该npm profile get
命令确认已设置。
示例:启用2FA后,从CLI设置配置文件值
注意:
使用命令行界面(CLI)定义的设置也将应用于网站。
安装2FA后,您需要输入OTP以获取与安全相关的命令。例如,无论何时使用该命令,npm profile set
您都需要输入OTP才能设置或更改值,例如您的全名:
$npm profile set fullname Carolyn A. Wombat
Enter OTP: 567452
Set fullname to Carolyn A. Wombat
使用`npm profile get'确认新设置。
我们的读者请注意:我们已重置屏幕截图中使用的帐户;
QR和代码都不活跃。但是,感谢那些向我们提出这个问题的警报和亲切的袋熊。
如何将OTP添加到命令
要将OTP添加到命令,请按如下所示附加它:
npm owner add <user > --otp=123456
恢复代码
设置双因素身份验证后,屏幕上会显示一系列恢复代码。请按照说明打印并保存。注意:某些身份验证器应用程序和密码管理应用程序提供了一种存储恢复代码的方法。
提示:将恢复代码保存在与用于进行身份验证的设备不同的位置。例如,如果您从平板电脑上获取OTP,请不要将代码保存在平板电脑的情况下。
恢复程序解释如下。
如何从配置文件中删除双因素身份验证
要从配置文件中删除2FA,请键入以下命令:
npm profile disable-2fa
npm将提示您输入密码:
> npm password:
根据提示输入您的npm密码,然后npm将显示:
>Enter one-time password from your authenticator: 123456
npm将确认:
Two factor authentication disabled.
如何从命令行发送OTP值
如果已启用2FA auth-and-writes,则需要从命令行发送OTP以使某些命令起作用。为此,请在命令末尾追加 --otp=123456
(其中123456
是您的身份验证器生成的代码)。这里有一些例子:
npm publish [<tarball>|<folder>][--tag <tag>] --otp=123456
npm owner add <user > --otp=123456
npm owner rm <user> --otp=123456
npm dist-tags add <pkg>@<version> [<tag>] --otp=123456
npm access edit [<package>) --otp=123456
npm unpublish [<@scope>/]<pkg>[@<version>] --otp=123456
什么时候npm需要第二个因素?
如果启用双因素授权,则需要在使用npm时在不同点输入第二个因子。该表解释了这些细节。
故障排除
输入一次性密码后出错
如果您输入的内容似乎是有效的OTP但是您看到错误,请确保您使用的是正确的身份验证器帐户。在下面的屏幕截图中,Authy中的当前帐户设置不正确,因为开发人员有多个npm测试帐户。这将导致OTP失败。此外,如前所述,当您在禁用后重置2fa时,身份验证器可能会创建具有相同名称的第二个帐户。请参阅身份验证器文档以删除旧帐户。
错位的第二因素设备
如果找不到提供第二因素身份验证的设备:
- 找到启用2FA时保存的恢复代码。
>Enter one-time password from your authenticator:
- npm将确认已禁用双因素身份验证。
错误的恢复代码
如果您错误地放置了提供第二因素身份验证的设备和恢复代码,我们可能无法帮助您恢复帐户。如