Linux Token 一次性密码认证
中国广东省深圳市龙华新区民治街道溪山美地
518131
+86 13113668890
+86 755 29812080
netkiller@msn.com
Token(令牌)是一个身份认证标识,token还有一个特点,那就是存在过期时间的。也就是令牌不是长久有效的。
2. 为什么使用令牌我们通常需要临时或者一次性使用的身份认证
3. 什么时候能用到令牌技术例如我们去餐厅就餐,向前台获取Wifi密码,然后可以享受30分钟的上网服务。30分钟过后密码将失效。
我们公司有很多服务器,密码的管理非常麻烦,有时还会有人事变动,一旦人员发生变动,所有的服务器密码都需要修改一次,非常麻烦,偶尔会有漏改情况,使用堡垒机可以更好的管理密码,但成本非常昂贵。
于是我便想起了Token技术,但购买Token硬件成本也要花费不少钱。Token的原理我很清楚,通过对称算法算出相同对等密钥,我们可以不购买硬件设备,自己开发,手机设备随身携带,所以开发移动版Token最好不过。
4. 本文的Token应用在什么地方我采用Token技术实现Linux指定用户的密码周期变化,以时间为基准,手机同步算出服务器上的密码。为了防止密码被穷举,我增加了4个干扰字符。
如果对密码算法强度感到不安全,你可以自行修改复杂度。
你还可以远程修改密码,不多讲。
5. 谁来部署首先由管理员部署密码修改程序 chpasswd.sh 然后加入到crontab 中定时运行。
由于考虑到读者的水平参差不齐,所以我使用shell完成,这样绝大多数读者都能看懂。
# cat chpasswd.sh #!/bin/bash datetime=`date +%Y-%m-%d" "%H":"%M` email="neo.chan@live.com" #password=$(cat /dev/urandom | tr -cd [:alnum:] | fold -w30 | head -n 1) string=$(date -u "+%Y$1%m$2%d$3%H$4%M") password=$(echo $string | md5sum | cut -c 2-9 | base64 | tr -d "=" | cut -c 1-32) echo $password ~/.lastpasswd echo $password | passwd www --stdin /dev/null
~/.lastpasswd 中保存最后一次密码
crontab 设置,每分钟修改一次密码。
# crontab -l */1 * * * * /root/chpasswd.sh a b c d
a b c d 自行设定,设定与手机端相同即可
至此服务器端配置完成
6. 手机端配置安装Token.apk文件到你的手机
默认1分钟刷新一次,可能没有来得及输入完密码就会更新密码
如果修改此项,服务器端crontab中的设置同步更改即可。
阿里云与Linux基金会发布“云原生人才计划 2.0”,基于开源与云打造培养认证体系 技术体系向云原生方向不断创新和演进的同时,也在迅速优化着企业向数字化转型的路径。云原生是未来趋势这件事已经毋庸置疑,但更重要的是,我们应该如何到达云原生的未来?
netkiller Nickname:netkiller | English name: Neo chen | QQ: 291379 | 订阅号:netkiller-ebook | 网站:http://www.netkiller.cn
相关文章
- Linux学习之用户管理命令与用户组管理命令(十五)
- [Linux] linux awk命令详解
- Linux查看用户密码修改时间
- Linux 系统磁盘满处理方法
- 深入理解Linux修改hostname
- Linux安全加固
- 重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- 【Linux基础】linux updatedb命令
- Linux基础之linux服务器服务器间拷贝文件
- 两台linux服务器各有两个不同的用户 其中一个服务器可以无密码登录服务器
- 最NB的发现 LINUX 下玩teamviewer 命令行设置密码
- Linux 普通进程 后台进程 守护进程
- [手游新项目历程]-51-SVN - Linux下SVN安装备份迁移方案
- Linux命令: 在线使用linux命令环境
- the usage of linux command "expect"
- L78.linux命令每日一练 -- 第11章 Linux系统管理命令 -- iostat和iotop
- L51.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- mkfs和dumpe2fs
- L45.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- sudo和id
- linux安装jdk-centos7系统:
- Linux如何在vim里搜索关键字
- Linux知识盲区整理
- 解决Linux服务器忘记Jenkins登录密码
- Linux命令之printenv,查看u-boot环境变量
- 使用wget批量下载geo数据集的全部文件 linux下载geo数据 geo处理的数据不是下载原始数据 Linux如何下载ftp文件 geo ftp geo ftp下载 geo下载
- 操作系统权限提升(二十四)之Linux提权-明文ROOT密码提权