二次登陆验证

服务器二次登录验证:

目前比较流行的两种方式

1 Google

https://github.com/google/google-authenticator

安装
关闭 selinux
git clone https://github.com/google/google-authenticator.git
yum install libtool  
 ./bootstrap.sh  
  ./configure  
   make && make install 
   google-authenticator 
   获取私钥 客户端输入。
Do you want me to update your "/root/.google_authenticator" file (y/n) y
Do you want to disallow multiple uses of the same authenticationtoken? 
This restricts you to one login about every 30s, but it increasesyour chances to notice or even prevent man-in-the-middle attacks (y/n) Do you want to disallow multiple uses of the same authenticationtoken? This restricts you to one login about every 30s, but it increasesyour chances to notice or even prevent man-in-the-middle attacks (y/n) y
By default, tokens are good for 30 seconds. In order to compensate forpossible time-skew between the client and the server, we allow an extratoken before and after the current time. If you experience problems withpoor time synchronization, you can increase the window from its defaultsize of +-1min (window size of 3) to about +-4min (window size of17 acceptable tokens).Do you want to do so? (y/n) y
If the computer that you are logging into isn‘t hardened against brute-forcelogin attempts, you can enable rate-limiting for the authentication module.By default, this limits attackers to no more than 3 login attempts every 30s.Do you want to enable rate-limiting (y/n) y
 vim /etc/pam.d/sshd  
第一行添加 auth required pam_google_authenticator.so  
 vim /etc/ssh/sshd_config  
修改为 ChallengeResponseAuthentication yes
 service sshd restart
ln -s /usr/local/lib/security/pam_google_authenticator.so pam_google_authenticator.so

通过 私钥+时间戳  算出6位验证码,客户端和服务端匹配,则通过验证。

缺点:数据明文存储本地,root账号可以看到

应用商店搜索  Google身份验证器  安装

2 洋葱

https://github.com/secken/secken-ssh

git clone https://github.com/secken/secken-ssh.git

sh dep.sh

tips

将keyboard interactive 放到第一位

通过秘钥登录的 无法进行二次验证

参考:http://36kr.com/p/532998.html

http://www.xitongzhijia.net/xtjc/20141211/32369.html

时间: 2024-10-06 15:15:25

二次登陆验证的相关文章

【Java EE 学习第70天】【数据采集系统第二天】【数据加密处理】【登陆验证】【登陆拦截器】【新建调查】【查询调查】

一.数据加密处理 这里使用MD5加密处理,使用java中自带加密工具类MessageDigest. 该类有一个方法digest,该方法输入参数是一个字符串返回值是一个长度为16的字节数组.最关键的是需要将这个16位的字节数组转换成为32位的字符串,转换方法是使用位移+与运算.将高四位移到低四位&0X0F得到一个字符,直接使用该值&0X0F得到一个字符,这样一个8bit的字节就能够拆成2个字符.最终16Byte就能够转换成为32个字符. 1 package com.kdyzm.utils;

Shrio登陆验证实例详细解读

摘要:本文采用了Spring+SpringMVC+Mybatis+Shiro+Msql来写了一个登陆验证的实例,下面来看看过程吧!整个工程基于Mavevn来创建,运行环境为JDK1.6+WIN7+tomcat7. 这里主要说了Shiro的搭建过程,Spring+SpringMVC+Mybatis的搭建过可以看这里Spring+Mybatis+SpringMVC+Maven+MySql搭建实例 整个工程免费下载: 最终效果如下: 工程整体的目录如下: java代码如下: 配置文件如下: 页面资源如

爬虫登陆验证过程

混合模式 结合二.三两大步,通过模拟点击快速拿到cookie,虽然效率低,但可以减少数据包分析的时间以及解决搞不定ajax登陆验证的烦恼,然后继续用urllib2拼接cookie继续快速获取数据.分下面两步: a. 从selenium中拿到cookie b. 添加cookie给urllib2使用 方法1:使用CookieJar,可参考<Creating Custom Cookies for HTTP Requests> 方法2:直接拼凑一个名称是"Cookie"的heade

Java的登陆验证问题

java中的登陆验证问题可以有多种方式进行验证,通过拦截器功能完成,可以通过过滤器功能完成,也可以简单的代码在JSP页面中单独完成,其中都 涉及到一个关键的验证步骤,这个验证原理ASP,PHP,JAVA等语言都大致相同,但具体到不同语言实现时有些差别:同时验证还涉及另外一个独立的问题 是验证到什么程度的问题,下面我就以我的认识讲解一下: 一,验证原理 下面看看JAVA中的验证关键步骤,一般我们用session变量来保存用户成功登录后的密码,为了防止用户把URL复制下来然后直接在浏览器地址 栏中输

【Java EE 学习第20 天】【使用过滤器实现登陆验证、权限认证】【观察者模式和监听器(使用监听器实现统计在线IP、登录IP 、踢人功能)】

一.使用过滤器实现登录验证.权限认证 1.创建5张表 /*使用过滤器实现权限过滤功能*/ /**创建数据库*/ DROP DATABASE day20; CREATE DATABASE day20; USE DAY20; /*用户表*/ DROP TABLE IF EXISTS USER; CREATE TABLE USER( userid VARCHAR(32) , username VARCHAR(32), userpassword VARCHAR(32), CONSTRAINT pk_us

登陆验证表单原理

22:25 2014/5/11 javaweb中表单登陆验证:表单验证原理都一样,不过struts2提供了validate方法. 没有Form表单类的登陆都是简单的登陆 1.通常把用户名密码为为不为空和用户名长度和密码长度写到Form表单类里通常叫做validate方法返回值为Map<String, String>类型 在LoginServlet里调用下就行,通常用webutils里的转换成bean方法得到Form类的对象,不用自己创建Form的实例更不用什么get/set那是stuts2的方

C#使用MVC框架实现登陆验证

步骤一:需求分析 我的目标是利用MVC框架实现简单登陆验证.从客户端输入用户名和密码.然后传给数据库验证.如果数据库存在此用户名ID和密码,则返回客户端账户姓名的成功提示.否则返回客户端失败信息. 步骤二:搭建MVC框架 新建项目>WEB>WEB应用程序 步骤三:先添加一个控制器,然后VIEWS文件夹下找到对应和控制器同名文件夹里面搭建VIEW界面样式,最后修改路由 确定能在浏览器访问 控制器: public class LoginController : Controller    {   

flask之flask-login登陆验证(一)

这个模块能帮助我们做很多事,最常用到的是,登陆验证(验证当前用户是否已经登陆).记住我功能 一 安装 pip install flask-login 二 导入相关模块及对象并初始化 from flask_login import login_manager, UserMixin login_manager_local = login_manager.LoginManager() login_manager_local.init_app(app) login_manager_local.sessi

djingo之登陆验证,cookie,session

一:会话技术: 1:什么是会话跟踪技术: 首先我们应该知道,什么是会话.当浏览器(客户端)第一次访问某个网站的时候(服务器).该浏览器便和服务器建立了单独的会话.直到浏览器关闭或服务器断开.但是一个网站有许多请求,如/login/,/index/等,而http协议是一种无状态的协议,一次请求一次链接,并不会保存状态信息.而我们一些信息,常常需要多个请求之间进行交互.既然请求无法保存登陆信息,那么可以使用会话跟踪技术来保存数据信息,进而进行多个请求之间的数据互通.实现会话跟踪技术就可以使用cook