当前位置: 首页 > article >正文

linux-ssh + google authenticator双因子认证

一. 简述: 

随着业务的发展, 人员的增多,一套合理的权限管理方案是必不可少的,通常情况下,为了安全,便于管理,我们都会配置一组跳板机作为登录入口。这里简单聊聊登录跳板机的方式。 

  在业界,不同的公司,可能使用不同的跳板机认证方式,通常有以下几种: ssh(key/pass)、kerberos、ldap、自己开发pam模块等。。

也有一些公司通过几种认证方式进行组合式进行认证(如kerberos+ldap+google auth等)。

根据实际环境,我们采用了ssh-key + google auth组合的方案。

二. 部署:

安装相关工具包:

#yum install -y git automake libtool pam-devel
#yum -y install wget gcc make pam-devel libpng-devel



安装chrony 实际同步工具:

#yum install -y chrony
#vim /etc/chrony.conf 
 
#/etc/init.d/chrony start
#chkconfig --add chrony
#chkconfig --level 3 5 chrony
#chkconfig chrony on


安装二维码生成工具(非必须):
#wget -c http://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.gz
#tar fxvz qrencode-3.4.4.tar.gz 
#cd qrencode-3.4.4
# ./configure 
#make && make install


安装google认证工具:
#git clone https://github.com/google/google-authenticator-libpam.git
#cd google-authenticator-libpam/
#./bootstrap.sh 
#./configure 
#make && make install
#ln -sv  /usr/local/lib/security/pam_google_authenticator.so /lib64/security/pam_google_authenticator.so

三. 配置:

1. 修改sshd_config, 令其支持google auth

vim /etc/ssh/sshd_config

Port 22
SyslogFacility AUTHPRIV
LogLevel INFO
AuthenticationMethods keyboard-interactive,publickey
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
ChallengeResponseAuthentication yes
UsePAM yes
X11Forwarding yes
PrintLastLog yes
PasswordAuthentication no

2. vim /etc/pam.d/sshd 

# cat /etc/pam.d/sshd 
auth       required     pam_google_authenticator.so
auth	   required	pam_sepermit.so
#auth       substack     password-auth
auth       include      postlogin

/etc/init.d/sshd restart

3. 生成google auth 的key

# google-authenticator 

4. 安装谷歌身份验证器,通过google auth 的key生成 实时的6位数验证码。

也可以安装google浏览器插件的方式; 


http://www.kler.cn/a/500348.html

相关文章:

  • 动态规划【打家劫舍】
  • [免费]微信小程序(高校就业)招聘系统(Springboot后端+Vue管理端)【论文+源码+SQL脚本】
  • [程序设计]—代理模式
  • TypeError: Cannot create a consistent method resolution order (MRO) for
  • Python 通过命令行在 unittest.TestCase 中运行单元测试
  • 妙用编辑器:把EverEdit打造成一个编程学习小环境
  • 通过案例研究二项分布和泊松分布之间关系
  • Windows下安装最新版的OpenSSL,并解决OpenSSL不是当前版本的问题,或者安装不正确的问题
  • Python爬虫进阶——案例:模拟bilibili登录)
  • 【Elasticsearch】 复合查询
  • 贪心算法汇总
  • NLP文本数据增强全攻略:从回译到多样化策略,全面提升模型表现!
  • 8 事件等待
  • Windows下调试Dify相关组件(1)--前端Web
  • 2024版idea 插件无法加载
  • C#中通道(Channels)的应用之(生产者-消费者模式)
  • 微商关系维系与服务创新:链动2+1模式、AI智能名片与S2B2C商城小程序的应用研究
  • AI刷题-数列推进计算任务、数组中的幸运数问题
  • 【复习小结】1-13
  • [ Spring ] Install MongoDB on Ubuntu24
  • windows及linux 安装 Yarn 4.x 版本
  • 记录一个在增量更新工具类
  • SpringBoot操作spark处理hdfs文件
  • 第432场周赛:跳过交替单元格的之字形遍历、机器人可以获得的最大金币数、图的最大边权的最小值、统计 K 次操作以内得到非递减子数组的数目