标签 Authenticator 下的文章

Authy 是一款流行的应用,用于存储和管理双因素代码。它是一项基于云的服务,可为你提供便利的工业级安全性。不幸的是,它不是开源的。

你会考虑在 Linux 桌面上使用更直接(和开源)的身份验证器应用吗?

嗯,当然,你不能使用云同步。但是你可以为双因素身份验证码做个备份。记住这点,让我告诉你更多有关 Authenticator 的信息。

authenticator app ft

Authenticator:生成双因素身份验证代码

当你启用在线服务的双因素身份验证时,大多数服务都会为你提供令牌/QR 码,你可以添加/扫描以生成代码。

Authenticator 就是这样一款适用于 Linux 的应用,他可让你添加双因素身份验证码。

authenticator ui

它是一个自由开源的应用,具有添加各种支持双因素身份验证的令牌和网站的基本功能。

身份验证器的特点

authenticator 自动锁定

你获得的一些基本功能包括:

  • 使用相机或截图的二维码扫描器
  • 使用密码保护应用
  • 自动锁定应用
  • 支持各种算法(SHA-1/SHA-256/SHA-512)
  • 支持基于时间/基于计数器/流式计算方法
  • 备份/恢复选项(FreeOTP、Aegis 和 OTP、Bitwarden 和 Google Authenticator)

你可以设置自定义选项,并能够根据服务提供的支持添加自定义的提供者。可以为提供者添加自定义图标,以帮助你区分身份验证代码。

authenticator 自定义提供程序

在大多数情况下,默认设置应该适用于网站。但是,如果它不起作用,你可能需要与提供者核实确切的详细信息。

该应用还具有开箱即用的多个提供者,例如 Google Drive 和 Proton Mail。因此,你无需为添加的每个条目添加自定义配置。

在 Linux 上安装 Authenticator

authenticator 添加新代码

Authenticator 以 Flatpak 的形式提供。因此,你可以将它安装在任何 Linux 发行版上。

只需输入以下命令即可安装它:

flatpak install flathub com.belmoussaoui.Authenticator

你可以前往其 Flathub 或 GitLab 页面探索更多信息。

如果你是 Linux 世界的新手,请参阅我们的 Flatpak 指南 进行设置。你的软件中心可能已经启用了 Flatpak 集成。这种情况下,你可以搜索安装它。

使用开源身份验证器应用确保安全性和可靠性

我们经常依赖云驱动的工具来处理所有事情。当然,这很方便。

但是,有时桌面应用更有用。如果你也这么想并考虑进行转换,Authenticator 可能是一款值得安装的出色的应用,可以用于双因素身份验证码。


via: https://itsfoss.com/authenticator/

作者:Ankush Das 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

运维密码是什么?

这是我们 Linux 中国旗下的 LCTT 技术组开发的第一款小程序,基于微信平台提供 OTP 口令管理功能。

想必绝大部分系统管理员都知道 OTP ,OTP 即 一次性口令 One-Time Password ,最常见的一次性口令是 基于时间的一次性口令 Time-based One-time Password (TOTP),即每隔一段时间(如 60 秒)就生成一个一次性的六位数字的密码。这种一次性口令可以用于各种登录验证系统,比如 SSH、网站登录等等,只要验证系统和验证者持有相同的 OTP 种子,并采用一致的算法即可。

最常见的方式是采用 Google 身份验证器 Google Authenticator 来提供基于时间的一次性口令(TOTP),也有采用 RSA 等公司提供的硬件 OTP 令牌进行一次性口令管理的。而我们这次推出的“运维密码”,即是一款采用和 Google 身份验证器 Google Authenticator 相同的算法的微信小程序。

为什么要开发这样的一款小程序呢,请听我道来~

缘起

为什么要做这样一款小程序?

大概是因为 Google 身份验证器 Google Authenticator 无法满足我的需要,没有办法备份场景。这让我很是担心,假如我丢失了手机,我可能再也无法登录到我的服务器上去了。

而且本身这个工具不是一个高频的应用,所以我们在考虑,能不能有这样的一种可能,让我们可以很方便地使用,同时也不会像App 一样过于侵扰我们的生活。

微信小程序出现后,其随用随走的理念深得我们的喜爱。其强大的线上线下融合能力,也非常适合我们的需求。所以在微信小程序出现后,我们就一直在关注,看我们的想法能不能在微信小程序上得以实现。

为什么选择微信小程序

微信小程序在某些方面的理念和我们对于这款工具的理念是一致的。

  • 随用随走:我们希望我们的产品不会给用户产生过多的困扰,而是很方便就可以使用它。作为一款安全工具,我们不希望它对用户的生活产生太多的麻烦。
  • 线上线下融合:微信小程序的形式让我们的用户只需要打开微信,扫一扫线下的二维码,就可以快捷、方便的拿到自己需要的动态密码。

“运维密码”的优势

备份功能

由于我们对于云服务的安全和隐私的担忧,所以我们将备份的功能做在了本地。当然,后续我们也会根据用户的不同偏好而推出基于云端的备份。

资源占用小

“运维密码”小程序不超过 200K,你只需要花费很少的流量,就可以实现和 Google 身份验证器 Google Authenticator 的全部功能。

产品无感知迭代

我们会对“运维密码”不断的更新,当然,你可以无需担心更新带来的数据问题。我们的小程序会自动帮你做好升级的事情。

开始使用

你可以直接在微信小程序中的搜索框内搜索:

微信小程序搜索框

或者,在微信公众号“运维伙伴”的详情页中也有“运维密码”的入口:

运维伙伴

或者,扫描下方二维码,添加运维密码小程序:

我还制作了一个简单的视频:

如何加入自己的场景?

打开“运维密码”,点击右下角的“扫描二维码”的按钮:

扫码

扫描服务商给你的“种子二维码”(这里包含了场景相关的信息),会自动识别,并且跳转到添加信息的界面:

确认信息

确认信息无误后,点击添加。添加成功后,即可跳转到到运维密码的详情页:

添加成功

视频操作如下:

如何获取密码?

在“运维密码”的首页,你可以看到你所添加的场景的列表,从中可以直接看到当前的一次性密码。也可以用下述的场景二维码来获取。

生成场景二维码

点击某个场景,可以查看该场景的详情,在此可以生成该场景的场景二维码(不同于之前的服务商所提供的“种子二维码”)。将此二维码打印出来,贴于所应用的场景附近,如服务器或终端旁边,这样你可以在该服务器或终端旁边直接用微信扫描即可马上显示该场景当前的一次性密码。

备份与恢复

作为最重要的差异性功能,“运维密码”提供了场景的备份和恢复功能,从此再也不怕丢失了手机后无法登入。

备份

首先进入“设置”,点击“本地场景备份”,会显示你的所有场景:

确认本地备份

确认后,会显示一个二维码图片,这个图片就是你的场景备份信息,千万保存好,也不要随意给别人。

视你所保存的场景多寡,这个二维码图片也尺寸和信息密度也有所不同。生成该备份信息会稍微有一些慢。

场景备份

对此备份,可以截屏保存到本地,妥善保管即可。下一步我们还会推出加密保存,需要使用密码才能解开。

恢复

如果因为某种原因,删除了场景或丢失了场景,你可以通过之前备份信息进行恢复,只需要选择你的备份二维码即可。重复的场景并不会覆盖。

恢复场景

下一步,我们也会推出基于公有云或私有云的云端备份功能。

更多功能

更多使用细节,您可以亲自试试。我们也有一大波新的功能增强正在赶来~

入群体验

对此小程序感兴趣的同学,欢迎加入专属体验群,提出您的建议和反馈:

扫描上述二维码并添加好友后,验证信息:“运维密码”,即可获得加群邀请。

寄语

我们希望运维密码能够给你带来更加舒服的体验,如果你觉得哪里有不足的,也希望你能够告诉我们,让我们一起把它做的更好。

后继我们将对此小程序开源,也欢迎大家提供反馈、补丁和功能请求。

近来很多知名企业都出现了密码泄露,业内对多重认证的呼声也越来越高。在这种多重认证的系统中,用户需要通过两种不同的认证程序:提供他们知道的信息(如 用户名/密码),再借助其他工具提供用户所不知道的信息(如用手机生成的一次性密码)。这种组合方式常叫做双因子认证或者两阶段验证。

为了鼓励广泛采用双因子认证的方式,Google 公司发布了 Google 身份验证器 Google Authenticator ,一款开源的,可基于开放规则(如 HMAP/ 基于时间)生成一次性密码的软件。这是一款跨平台软件,可运行在 Linux、 AndroidiOS。Google 公司同时也支持插件式鉴别模块PAM (pluggable authentication module),使其能和其他也适用 PAM 进行验证的工具(如 OpenSSH)协同工作。

在本教程中,我们将叙述集成 OpenSSH 和 Google 提供的身份验证器实现如何为 SSH 服务设置双因子认证。我将使用一款 Android 设备来生成一次性密码,本教程中需要两样武器:

(1) 一台运行着 OpenSSH 服务的 Linux 终端,

(2) 一台安卓设备。

在 Linux 系统中安装 Google 身份验证器

第一步需要在运行着 OpenSSH 服务的 Linux 主机上安装 Google 身份验证器。按照如下步骤安装 Google 身份验证器及其PAM模块。

用安装包安装 Google 身份验证器

如果你不想自己构建 Google 身份验证器,在几个 Linux 发行版上有已经编译好的安装包。安装包里面包含 Google 身份验证器 二进制程序和 PAM 模块。

在 Ubuntu 上安装 Google 身份验证器:

$ sudo apt-get install libpam-google-authenticator

在 Fedora 上安装 Google 身份验证器:

$ sudo yum install google-authenticator

在 CentOS 上安装 Google 身份验证器 ,需要首先启用 EPEL 软件库,然后运行如下命令(LCTT 译注:EPEL 库中可能已经删除了该软件包,请使用源代码编译方式安装):

$ sudo yum install google-authenticator

如果不想使用已经编译好的安装包,或者你的 Linux 发行版不在此列,可以自行编译:

在 Linux 上编译 Google 身份验证器

首先,安装构建 Google 身份验证器所需的软件包。

在 Debian、 Ubuntu 或 Linux Mint 上:

$ sudo apt-get install wget make gcc libpam0g-dev

在 CentOS、 Fedora 或 RHEL上:

$ sudo yum install wget make gcc pam-devel

然后下载 Google 身份验证器的源代码,并按如下命令编译(已经从 Google Code 迁移到了 Github)。

$ wget https://github.com/google/google-authenticator/archive/master.zip
$ unzip master.zip
$ cd google-authenticator-master/libpam
$ ./bootstrap.sh
$ ./configure
$ make

如果构建成功,你会在目录中看到 pam_google_authenticator.sogoogle-authenticator 两个文件。

最后,将 Google 身份验证器安装到合适位置。默认会安装到 /usr/local/lib/security 下,根据你的系统不同,你可能需要将其符号链接到 pam 库的位置(比如 CentOS 7 会在 /usr/lib64/security)。

$ sudo make install

排错

当编译 Google 身份验证器时出现如下错误:

fatal error: security/pam_appl.h: No such file or directory

要修复这个问题,请安装如下依赖包。

在 Debian、 Ubuntu 或 Linux Mint 上:

$ sudo apt-get install libpam0g-dev

在 CentOS、 Fedora 或 RHEL 上:

$ sudo yum install pam-devel

当 Google 身份验证器安装好后,你需要在 Linux 主机上创建验证密钥,并且在安卓设备上注册,注意这项配置操作是一次性的。我们将详细叙述如何完成这些操作:

生成验证密钥

在 Linux 主机上运行 Google 身份验证器:

$ google-authenticator 

你将看到一个二维码,它使用如下图形表示我们数字形态的密钥。一会我们要用到它在安卓设备上完成配置。

Google 身份验证器会问一些问题,如果你不确定,就回答 Y。这个应急备用验证码(图中 emergency scratch codes)可以在你由于丢失了绑定的安卓设备的情况下(所以不能得到生成的一次性密码)恢复访问。最好将应急备用验证码妥善保存。

在安卓设备上运行 Google 身份验证器

我们需要在安卓设备上安装 Google 身份验证器应用才能完成双因子认证,到 Google Play 下载并安装一个。在安卓设备上运行 Google 身份验证器,找到下图所示中的配置菜单。

你可以选择“Scan a barcode” 或者“Enter provided key”选项。“Scan a barcode”允许你扫描二维码来完成密钥的输入,在此可能需要先安装扫描软件 Barcode Scanner 应用。如果选择“Enter provided key”选项,你可以使用键盘输入验证密钥,如下图所示:

无论采用上述两种选项的任何方式,一旦成功,你将看到注册成功提示和一次性密码,如下图所示:

为 SSH 服务器用 Google 身份验证器

最终我们需要修改两个文件来完成集成 Google 身份验证器和 OpenSSH 服务这临门一脚。

首先,修改 PAM 配置文件,命令和需添加的内容如下:

$ sudo vi /etc/pam.d/sshd 

auth required pam_google_authenticator.so

然后打开 SSH 配置文件,找到参数 ChallengeResponseAuthentication,并启用它。

$ sudo vi /etc/ssh/sshd_config 

ChallengeResponseAuthentication yes

最后,重启 SSH 服务。

在 Ubuntu、 Debian 和 Linux Mint 上:

$ sudo service ssh restart 

在 Fedora (或 CentOS/RHEL 7)上:

$ sudo systemctl restart sshd 

在 CentOS 6.x或 RHEL 6.x 上:

$ sudo service sshd restart 

不要退出当前的 ssh 链接,大多数 Linux 发行版重启 ssh 服务并不会中断当前已经建立的 ssh 连接。另外开个窗口去重新连接 ssh 服务,如果遇到问题,还可以在原来的 ssh 连接下修改和恢复。

验证双因子认证

在绑定的安卓设备上运行 Google 身份验证器,获得一个一次性验证码,该验证码 30 秒内有效,一旦过期,将重新生成一个新的验证码。

现在和往常一样,使用 SSH 登录终端

$ ssh user@ssh_server 

当提示你输入验证码的时候,输入我们刚获得的验证码。验证成功后,再输入 SSH 的登录密码。

双因子认证通过在用户密码前新增一层来有效的保护我们脆弱的用户密码。你可以使用 Google 身份验证器来保护我们其他的密码,如 Google 账户、GitHub、WordPress.com、Dropbox.com、Outlook.com等等。是否使用这项技术,取决于我们自己,但采用双因子认证已经是行业的大趋势了。


via: http://xmodulo.com/2014/07/two-factor-authentication-ssh-login-linux.html

译者:nd0104 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出