如何为SSH安装Authy和配置双重身份验证
介绍
使用 双重身份验证 ,不仅需要密码或 SSH 密钥,还需要手机生成的时间敏感令牌,从而使您的 VPS 更加安全。
这意味着即使您的密码被泄露或您不小心泄露了您的私钥,您的云服务器也将保持安全。
Authy 提供了一个简单的设置平台,它不仅兼容谷歌和 Dropbox 等流行应用程序,还兼容您自己的 VPS。
它的设置超级简单,虽然它是一项商业服务,但对于个人和开发用途,您每月最多可以免费登录 1000 次。
你需要:
- 一个 DigitalOcean 云服务器,准备 SSH 进入
- iOS 或 Android 移动设备
入门
在手机上设置 Authy
为您的 iOS 或 Android 设备下载 Authy 应用程序。
打开应用程序,然后按照简单的步骤操作,包括验证您的电话号码。 您的手机现在是一个安全令牌。
设置开发者帐户
您需要再次注册,这次是作为开发人员,以便您可以将您的 VPS 链接到手机的 Authy 应用程序。
为此,请前往此处的注册页面并输入您的电子邮件地址、国家/地区、电话号码和密码 - 确保您使用与之前输入的相同的手机号码。
[[File:“%3Ca]] https://assets.digitalocean.com/tutorial_images/njjJfFU.png ” alt =“注册” />
收到来自 Authy 的电子邮件后,单击其中的链接,系统会要求您登录。 您的手机将自动配置为访问您帐户的令牌 - 打开“Authy”应用程序,您将获得登录密码。
[[File:“%3Ca]] https://assets.digitalocean.com/tutorial_images/I87BRgw.jpg?4 ” alt =“iOS 上的验证码”/>
创建 API 应用程序
进入 仪表板 后,单击“创建新应用程序”,输入云服务器的友好名称,然后单击“创建”。
[[File:“%3Ca]] https://assets.digitalocean.com/tutorial_images/La7wt5T.png ” alt =“创建 API 应用程序”/>
几秒钟后,您将被带到您的应用程序。 将鼠标悬停在显示 API 密钥的挂锁上,然后将密钥复制到安全的地方。 稍后您将再次需要它。
[[File:“%3Ca]] https://assets.digitalocean.com/tutorial_images/GRfypgS.png ” alt =“API 密钥”/>
安装 authy-ssh
首先,通过 SSH 连接到您的 VPS:
ssh root@your.hostname.tld
下载安装程序,然后运行它,在 /usr/local/bin 中安装可执行文件:
curl "https://raw.github.com/authy/authy-ssh/master/authy-ssh%22 -o authy-ssh-installer
sudo bash authy-ssh-installer install /usr/local/bin
在提示符处,输入您之前从 Authy 网站收到的 API 密钥。 如果 Authy 关闭,您将被要求选择要做什么 - 我推荐选项 1,以防服务突然关闭。
为您的用户配置双重身份验证
只需运行以下命令,替换:
- “whoami” 使用另一个用户名,如果您想为除了您登录为 email 和 number 的用户之外的用户配置电子邮件和您的 Authy 帐户上的手机号码
- country 与您电话号码中的国家代码(例如“+44”代表英国,或“+1”代表美国和加拿大)
sudo /usr/local/bin/authy-ssh enable <whoami> email country number
它会要求你确认。 点击“y”,然后一切准备就绪。
试试看
重新启动 SSH 服务器以使更改生效。
Ubuntu: sudo service ssh restart
Debian: sudo /etc/init.d/sshd restart
CentOS: sudo service sshd restart
尝试通过 SSH 重新登录,系统会要求您提供 Authy 令牌。 打开应用程序,切换到“Authy”并输入代码。 您现在已登录。
改变主意了吗?
卸载 authy-ssh 时务必小心,否则您可能无法访问您的 VPS。 它只需要两个命令:
从之前运行安装程序脚本,但处于卸载模式:
chmod +x authy-ssh-installer ./authy-ssh-installer uninstall
重启你的 SSH 服务器,如上:
Ubuntu: sudo service ssh restart
Debian: sudo /etc/init.d/sshd restart
CentOS: sudo service sshd restart