如何在Linux上用一次性密码确保SSH登录安全?(2)

它会要求你设置一个前缀密码。你以后登录时,就需要输入这个前缀密码以及一次性密码。实际上前缀密码是另一层保护机制。即使密码表落到了不法分子手里,前缀密码也会迫使对方采用蛮力攻击。

一旦前缀密码设置完毕,命令会生成280个一次性密码,并将它们存储在输出文本文件(比如temporary_password.txt)中。每个密码(默认情况下长度是8个字符)的前面是三位数的索引号。你可以将文件打印在纸张上,随身携带。

如何在Linux上用一次性密码确保SSH登录安全?

你还会看到~/.otpw文件已创建,这些密码的密码散列就存储在其中。每一行的头三位表明了将用于SSH登录的密码的索引号。

$ more ~/.otpw OTPW1 280 3 12 8 191ai+:ENwmMqwn 218tYRZc%PIY27a 241ve8ns%NsHFmf 055W4/YCauQJkr: 102ZnJ4VWLFrk5N 2273Xww55hteJ8Y 1509d4b5=A64jBT 168FWBXY%ztm9j% 000rWUSdBYr%8UE 037NvyryzcI+YRX 122rEwA3GXvOk=z

测试用于SSH登录的一次性密码

现在,不妨像平常那样登录到SSH服务器:

$ ssh user@remote_host

如果OTPW成功设置,你会看到略有不同的密码提示符:

Password 191:

现在打开密码表,寻找密码表中的索引号“191”。

023 kBvp tq/G 079 jKEw /HRM 135 oW/c /UeB 191 fOO+ PeiD 247 vAnZ EgUt

据上面密码表显示,编号“191”的一次性密码是“fOO+PeiD”。你需要在前面加上前缀密码。比如说,如果你的前缀密码是“000”,那么需要输入的实际的一次性密码是“000fOO+PeiD”。

一旦你成功登录,所使用的密码会自动作废。如果你查看~/.otpw,就会注意到第一行被换成了“---------------”,这意味着密码“191”已经无效。

OTPW1 280 3 12 8 --------------- 218tYRZc%PIY27a 241ve8ns%NsHFmf 055W4/YCauQJkr: 102ZnJ4VWLFrk5N 2273Xww55hteJ8Y 1509d4b5=A64jBT 168FWBXY%ztm9j% 000rWUSdBYr%8UE 037NvyryzcI+YRX 122rEwA3GXvOk=z

结束语

我在本教程中演示了如何使用OTPW程序包,设置用于SSH登录的一次性密码。你可能认识到,打印的密码表就好比是双因子验证中的安全令牌,只是比较平实罢了。不过,它更简单,你也不用依赖任何第三方即可实现。无论你使用什么机制来创建一次性密码,当你需要从不可信任的公共计算机登录到SSH服务器时,它们都大有帮助。欢迎留言交流。

英文:How to secure SSH login with one-time passwords on Linux

提高Ubuntu的SSH登陆认证速度的办法

开启SSH服务让Android手机远程访问 Ubuntu 14.04 

如何为Linux系统中的SSH添加双重认证

在 Linux 中为非 SSH 用户配置 SFTP 环境

Linux 上SSH 服务的配置和管理

SSH入门学习基础教程

SSH免密码登录详解 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16480.html