背景:双因子认证(简称:2FA,以下简称2FA),在这里其为SSH的第二重认证。2FA指的是密码以及实物(信用卡、SMS手机、令牌或指纹等生物标志)两种条件对用户进行认证的方法。通过两种不同的认证程序,可以降低密码泄露带来的风险,大大提高了linux系统的安全!

一、配置前准备

  1、 准备一台运行着的OpenSSH服务的linux终端。

  2、 安卓手机一台。

二、linux上安装Google身份验证器

  1、 ubuntu上安装Google身份认证器:

$ sudo apt-get install libpam-google-authenticator -y

  

  2、 CentOS上安装Google身份认证器

#安装EPEL软件库
$ sudo yum install epel-release -y #安装google-authenticator
$ sudo yum install -y google-authenticator

  

  3、 linux主机上运行Google身份验证器

$ google-authenticator

  Google身份验证器会问一些问题,一直答 Y即可。图中的应急备用验证码(图中显示为: emergency scratch codes)可以在你丢失了绑定的安卓设备的情况下恢复访问。所以,一定要将应急备用验证码保存好!

三、为SSH服务器用Google身份验证器

  1、 修改PAM配置文件

$ sudo vim /etc/pam.d/sshd

# Disallow non-root logins when /etc/nologin exists.
account required pam_nologin.so # 添加这一行
auth required pam_google_authenticator.so

  

  2、 在SSH配置文件里启用 ChallengeResponseAuthentication

$ sudo vim /etc/ssh/sshd_config

ChallengeResponseAuthentication      yes

  

  3、 重启SSH服务

$ sudo service ssh restart

  

四、在安卓设备上运行Google身份验证器

  1、 在安卓应用市场搜索并安装Google身份验证器。

  2、 在配置菜单输入刚刚的配置信息

  3、 添加完成后会得到6位数动态码

       到此,双因子认证配置完成!

配置参考链接:https://linux.cn/article-3725-1.html

配置Linux的SSH双重认证的更多相关文章

  1. 配置Linux使用LDAP用户认证

    配置Linux使用LDAP用户认证 本文首发:https://www.cnblogs.com/somata/p/LinuxLDAPUserAuthentication.html 我这里使用的是Cent ...

  2. Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录

    1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...

  3. Linux之SSH密钥认证

    1.SSH协议的认识 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前 ...

  4. Mac下配置远程Linux 服务器SSH密钥认证自动登录

    1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...

  5. Jenkins进阶系列之——09配置Linux系统ssh免密码登陆

    ssh认证的完整描述:https://www.ibm.com/developerworks/cn/linux/security/openssh/part1/ 说明:点我去查看 今天我们只说生成ssh的 ...

  6. linux SecureCRT ssh key认证登陆

    转自:http://blog.chinaunix.net/uid-20639775-id-3207171.html 通过SecureCRT创建key登录认证 一.生成公钥/密钥对 使用SecureCR ...

  7. jenkins发布项目到远程主机上,配置linux使用SSH免密码登录

    一.首先要配置两台linux如何使用SSH免密码登录,这样脚本执行scp命令以及远程执行脚本都不需要输入密码: A为本地主机(即用于控制其他主机的机器,jenkins服务器) ; B为远程主机(即被控 ...

  8. centos7服务搭建常用服务配置之一:SSH

    目录 1 SSH服务协议 1.1 ssh服务协议说明 1.2 ssh服务工作机制 1.3 ssh加密技术说明 1.3.1 ssh实现安全链接建立,利用要是和锁头 1.3.2 ssh加密算法 1.4 s ...

  9. Linux远程ssh执行命令expect使用及几种方法

    expect命令实现脚本免交互 一.Linux下SSH无密码认证远程执行命令 在客户端使用ssh-keygen生成密钥对,然后把公钥复制到服务端(authorized_keys). 实现步骤: 1.客 ...

随机推荐

  1. ORM版,学生管理系统02

    学生管理系统 urls.py url(r'^student_list/$',views.student_list,name="student_list"), url(r'^dele ...

  2. (四)java基本语法

    关键字 被java赋予了特殊意义的单词: class,new,private,protected,public,static,final,abstract,interface,this,super,I ...

  3. 【Android】SDK工具学习 - adb

    ADB(Android Debug Bridge) 小白笔记 学习资料 adb简要介绍 adb 是一个 C/S 架构的命令行工具,主要由 3 部分组成: 运行在 PC 端的 Client : 可以通过 ...

  4. WPF:XAML概述

    简介 XAML是eXtensible Application Markup Language可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新的描述性语言.XAML提供了一种便于 ...

  5. Git克隆、修改、更新项目,及查看项目地址命令

    第一步:在本地新建一个文件夹,作为本地仓库,如“texzt”,直接打开该文件夹,并单击右键,选择git bash here 则可以直接进入到该文件夹目录下. 第二步:将本地仓库初始化,命令:git i ...

  6. as3 htmlText 的bug

    as的文本框  会把连续的英文当作一个单词处理 如果是在已有内容的行后 超过宽度就会换行 左边的用了英文冒号直接被当成完整的单词右边的被当成了 jj5jk : mmmmmmmmmm 三个单词

  7. 开发沉思录 - 记大数据平台的一次 BUG井喷

    研究REST提交重启:终于提交成功了,首先一个错误:地址IP地址的http://hdp0:8080/api/v1/clusters/HDP/requests ,被我错误写成了request,当误了大量 ...

  8. dpkg安装工具

    dpkg --info "软件包名" --列出软件包解包后的包名称. dpkg -l --列出当前系统中所有的包.可以和参数less一起使用在分屏查看. (类似于rpm -qa) ...

  9. Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] B. "Or" Game

    题目链接:http://codeforces.com/contest/578/problem/B 题目大意:现在有n个数,你可以对其进行k此操作,每次操作可以选择其中的任意一个数对其进行乘以x的操作. ...

  10. 集群/分布式环境下,Session处理策略

    前言 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理.如果不做任何处理的话,用户将出现频繁登录的现象.比如集中中存在A.B两台服务器,用户在第一次访问网站是,Ngin ...