Centos6.5SSH登录使用google二次验证
一般ssh登录服务器,只需要输入账号和密码,但为了更安全,在账号和密码之间再增加一个google的动态验证码。谷歌身份验证器生成的是动态验证码,默认30秒更新
工具/原料
- CentOS 6.5
- XShell
关闭SELINUX
- 1
使配置立即生效,但这样重起会失效
setenforce 0
- 2
打开selinux的配置文件,修改配置,使重启后依然关闭selinux
vim /etc/selinux/config
SELINUX=disabled
END
安装编辑工具包
- 1
直接使用yum的静默安装
yum -y install gcc make pam-devel libpng-devel libtool wget git

- 2
出现Complete!且中间没有Error说明安装完成

- 3
安装Qrencode
yum install mercurial
END
安装google authenticator PAM插件
- 1
使用git clone下载google-authenticator-libpam
git clone https://github.com/google/google-authenticator-libpam.git

- 2
进入google-authenticator-libpam目录
cd google-authenticator-libpam/

- 3
编译并安装
./bootstrap.sh && ./configure && make && make install

- 4
等待安装完成

- 5
复制google 身份验证器pam模块到系统下
cp /usr/local/lib/security/pam_google_authenticator.so /lib64/security/

- 6
配置/etc/pam.d/sshd
vim /etc/pam.d/sshd

- 7
在前面添加
auth required pam_google_authenticator.so

- 8
修改SSH服务配置/etc/ssh/sshd_config
ChallengeResponseAuthentication no 改为Yes

- 9
重启ssh服务
service sshd restart

- 10
切换到需要验证的系统账户,这里以root用户为例
运行程序
google-authenticator

- 11
出现Do you want authentication tokens to be time-based (y/n)
选择输入 y
之后出现的网址为生成的二维码图形地址(需要FQ才能打开),还会生成密钥,以及5个紧急验证码(当无法获取动态验证码时使用,注意:这5个验证码用一个就会少一个!请保存好

- 12
之后出现的几个选择输入的地方,全输入y

- 13
退出xshell,重新登录,这里就需要google验证码了。
END
验证登录
手机安装Google身份验证器

点右下角+新加,选择手动输入(或者下载二维码扫描)
这里是 ULDWV753HF5XTGGGWCCW5C4UAI

添加完成后,会多出一个动态验证码

打开xshell(其他终端类似),选择登陆主机的属性。设置登陆方法为Keyboard Interactive

确定,然后连接。这里会弹出google验证的动态验证码,这个去手机Google身份验证器找到6位数的动态密码填上

然后是输入密码

- 7
完成登录

PS:安装配置使用xshell时验证失败,使用其他主机ssh到目的主机或者使用SecuerCRT验证成功
参考:http://jingyan.baidu.com/article/8ebacdf005f31149f75cd563.html
Centos6.5SSH登录使用google二次验证的更多相关文章
- 为Linux服务器的SSH登录启用Google两步验证
对于Linux服务器而言使用密钥登录要比使用密码登录安全的多,毕竟当前网上存在多个脚本到处进行爆破. 这类脚本都是通过扫描IP端的开放端口并使用常见的密码进行登录尝试,因此修改端口号也是非常有必要的. ...
- SSH登录启用Google二次身份验证
一般来说,使用ssh远程登录服务器,只需要输入账号和密码,显然这种方式不是很安全.为了安全着想,可以使用GoogleAuthenticator(谷歌身份验证器),以便在账号和密码之间再增加一个验证码, ...
- java实现谷歌二步验证 (Google Authenticator)
准备: 一个谷歌二步验证APP, 我用的是ios 身份宝 资料: 1.Google Authenticator 原理及Java实现 //主要参考 https://blog.csdn.net/li ...
- PHP设置谷歌验证器(Google Authenticator)实现操作二步验证
使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码.实现Google Authenticator功能需要服务 ...
- ssh登录二次验证,让服务器更安全。
码云地址 sshdTwoVerification 介绍 ssh登录二次验证 问题:现在很多人的Linux服务器可能会被攻击,只校验一次后台用户名密码登录变得不再保险. 当然大家首先要做的是修改ssh服 ...
- 你知道怎么使用Google两步验证保护账户安全吗?
目录 为什么我们需要使用它? 对有些人来说,盗取密码比您想象的更简单 什么是Google两步验证? 多一道安全防线 什么是Google Authenticator ? 使用Google两步验证的好处 ...
- GitHub 二次验证收不到短信咋办?
身在天朝,用了国外的代码托管服务,会有些烦恼的. 网速慢就不说了,如果启用了二次验证,短信收不到那就悲催了. 之前的都能收到短信的,突然间尝试了很多天都不行,联系github的客服,几次的答复如下: ...
- Vue结合Django-Rest-Frameword结合实现登录认证(二)
作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/2436173500265335 微信公众 ...
- Force.com微信企业号开发系列(一) - 启用二次验证
微信于9月份推出企业号后引起了业界不小的反响,许多企业都在思索企业号将如何影响企业的运营,从本文开始,我将详细阐述微信企业号开发的相关知识,而本文将着重介绍如何实现更高安全机制的二次验证. 申请企业体 ...
随机推荐
- 【转】C#调用WebService实例和开发
一.基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是 ...
- e637. 向剪切板获取和粘贴文本
This examples defines methods for getting and setting text on the system clipboard. // If a string i ...
- Java获取网络IP
Java获取获取网络IP,浅尝辄止咯- import java.net.InetAddress; import java.net.UnknownHostException; /** * 获取网络IP ...
- asp.net mvc中加入log4net记录错误日志
直接上代码示例:https://share.weiyun.com/aff36f2547514cfefe129ebb8ccb28ef 首先添加加log4net的dll,推荐用nuget.... 贴上配置 ...
- opengl 裁剪平面
原帖地址:http://blog.sina.com.cn/s/blog_5ff6097b0100xqvr.html void glClipPlane(GLenum plane, const GLdou ...
- 微信支付(公众号支付APIJS、app支付)服务端统一下单接口java版
一.微信公众号支付APIJS: 要完整的实现微信支付功能,需要前后端一起实现,还需要微信商户平台的配置.这里只是涉及服务端的代码. jar包:pom.xml <!-- ↓↓↓↓↓↓↓↓ 支付相关 ...
- 单例模式(singleton pattern)--------创造型模式
缺点: 1.单例模式没有抽象层,单例模式的扩展较困那(开闭原则) 2.单例类的职责过重,既提供了业务方法,又提供了创建对象的方法,将对象的创建和对象本身的功能耦合在一起(违反单一职责原则,但是似乎又无 ...
- 根据PV量来确定需要进行压测的并发量
在实际做压力测试的过程中,我们有时不知道用怎样的并发量比较好,下面是几个用PV量去确定并发量的公式,这个在我们公司是比较适用的,大家可以根据自己的业务进行运算. 方法一:这个方法是我在网上查到的80- ...
- 一、JSON解析与字符串化
JSON.stringify() 序列化对象.数组或原始值 语法:JSON.stringify(o,filter,indent) o,要转换成JSON的对象.数组或原始值 filter,指定要序列化的 ...
- jQuery操作属性和样式详解
我们可以使用 javascript 中的getAttribute和setAttribute来操作元素的"元素属性".在 jQuery 中给你提供了attr()包装集函数, 能够同时 ...