教你如何让SSH使用一次性密码登陆

前言

彩色文字认证系统privacyIDEA是一个模块化认证系统,一个认证服务器,由python编写的一款提供一次性密码即OTP(One Time Password)的开源软件,支持多种不同的数据来源:如flat files,不同的LDAP服务,SQL数据库和SCIM服务。认证方面可以对接radius。

工具的安装与配置

话不多说,先上安装文档地址 【[传送门](http://privacyidea.readthedocs.io/en/v2.19/installation/index.html)】ubunutu与CentOS都有官方的包,如果找不到包的话可以用pip去构建,╮( ̄▽ ̄”)╭真齐全。

这边的话我是用ubunutu构建.简单的几句apt搞定

> add-apt-repository ppa:privacyidea/privacyidea
apt-get update
apt-get install python-privacyidea privacyideaadm
apt-get install privacyidea-apache2
apt-get install privacyidea-radius  #用于将RADIUS请求转换为privacyIDEA服务器的API
apt-get install privacyidea-simplesamlphp #通过simpleSAMLphp 的插件支持SAML
apt-get install privacyidea-pam #可以对任何Linux系统添加双因素身份验证(可以用本身的密码或者OTP登陆)
apt-get install privacyidea-otrs #

完成后直接访问https://ip 安装apache后默认是开启ssl的.也可以用python  runserver的方式去启动服务.
用户名密码通过创建 -e 后面加的是用户名

freeradius安装以及对接使用

ubnutu下直接使用apt进行安装

> apt-get install libpam-radius-auth freeradius

修改 /etc/pam.d/sshd 在开头添加以下这句

> @include otp-auth

接着复制文件

> cp /etc/pam.d/common-auth /etc/pam.d/otp-auth

otp-auth内容如下

> auth    [success=3 default=ignore]      pam_radius_auth.so
auth    [success=2 default=ignore]      pam_unix.so nullok_secure try_first_pass
auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    requisite                      pam_deny.so
auth    required                        pam_permit.so
auth    optional        pam_ecryptfs.so unwrap
auth    optional                        pam_cap.so

添加radius服务器

教你如何让SSH使用一次性密码登陆

手机端的工具安装

可以采用[freeotp](http://downloads.tomsguide.com/FreeOTP,0301-56679.html)或者是谷歌认证器通过扫描二维码使用 安卓版

添加用户TOKENS

教你如何让SSH使用一次性密码登陆

(・。・)接下来就可以在putty或者xshell进行认证了,可以用原来的密码或者是PIN+OTP进行登陆.

认证成功的radius登陆日志

教你如何让SSH使用一次性密码登陆

结论

一次性密码有好有坏,可以免除一些外来的密码入侵。通过api甚至可以将其扩展到网页认证之类的。

附:从百度偷取的应用图

教你如何让SSH使用一次性密码登陆

相关推荐