搜索
首页运维linux运维如何在Linux中实现SSH的两因素身份验证(2FA)?

如何在Linux中实现SSH的两因素身份验证(2FA)?

在Linux系统上实施SSH的两因素身份验证(2FA),通过在授予访问权限之前需要两种形式的验证来增强安全性。这是使用Google Authenticator设置2FA的分步指南,这是为此目的最受欢迎的工具之一:

  1. 安装Google Authenticator
    首先,安装Google Authenticator PAM模块。在像Ubuntu这样的基于Debian的系统上,您可以通过运行来执行此操作:

     <code>sudo apt-get update sudo apt-get install libpam-google-authenticator</code>

    在基于红帽的系统(例如CentOS)上,您可以使用:

     <code>sudo yum install google-authenticator</code>
  2. 为您的用户配置Google Authenticator
    google-authenticator命令作为用户运行:将使用SSH:

     <code>google-authenticator</code>

    此命令将生成一个秘密密钥和QR码。根据您的喜好回答提示,例如是否使用基于时间的令牌以及是否应每30秒更新密钥。

  3. 配置PAM以使用Google Authenticator
    通过打开file /etc/pam.d/sshd并在最后添加以下行:编辑SSH的PAM配置:

     <code>auth required pam_google_authenticator.so</code>
  4. 修改SSHD配置
    OPEN /etc/ssh/sshd_config并确保配置以下设置:

     <code>ChallengeResponseAuthentication yes PasswordAuthentication no UsePAM yes</code>

    然后重新启动SSH服务以应用更改:

     <code>sudo systemctl restart sshd</code>
  5. 测试SSH登录
    尝试通过SSH登录。现在,除了密码外,还应提示您获取验证代码。

使用2FA在Linux系统上使用SSH有哪些安全好处?

在Linux系统上为SSH实施两因素身份验证提供了几种安全好处:

  • 增强的安全性:2FA增加了一层安全性,使攻击者更难获得未经授权的访问。即使密码被妥协,攻击者仍然需要第二个登录的因素。
  • 防止密码攻击:2FA减轻密码,蛮力攻击和密码猜测所带来的风险,因为访问不仅需要密码。
  • 问责制和监视:使用2FA,每个登录都可以与物理设备绑定,从而更容易跟踪和监视登录尝试并检测可疑活动。
  • 减少内部人士威胁:2FA可以通过确保员工的凭据被盗或滥用,可以限制内幕威胁的损害,第二个因素仍然是访问的障碍。
  • 遵守安全标准:许多监管框架和安全标准都需要使用2FA进行远程访问,因此实施它可以帮助组织满足合规性要求。

我可以使用哪些工具或软件在Linux上设置2FA?

有几种工具和软件选项可用于在Linux上为SSH设置2FA,包括:

  • Google Authenticator :Google Authenticator易于设置并使用基于时间的一次性密码(TOTP),在大多数Linux发行版中广泛使用和支持。
  • Authy :类似于Google Authenticator,但具有多设备同步和备份等其他功能。
  • Duo Security :一种全面的解决方案,可提供2FA以及高级功能,例如用于身份验证和与各种系统集成的推送通知。
  • Yubikey :一种基于硬件的2FA解决方案,使用U2F(通用第二因子),并且由于其物理性质非常安全。
  • Linux-PAM :Linux上的可插入身份验证模块(PAM)框架可以配置为使用包括Google Authenticator在内的各种2FA解决方案。
  • FreeOTP :Google Authenticator的开源替代方案,可在许多平台上使用。

在Linux服务器上配置SSH时,如何对常见问题进行故障排除?

在Linux服务器上为SSH配置2FA时,您可能会遇到几个常见问题。这是对它们进行故障排除的方法:

  1. 配置2FA后,SSH连接失败

    • 检查SSHD配置:确保将ChallengeResponseAuthentication设置为yes ,并将UsePAM设置为yes IN /etc/ssh/sshd_config
    • 验证PAM配置:确认auth required pam_google_authenticator.so将正确添加到/etc/pam.d/sshd中。
  2. 验证代码未接受

    • 时间同步:确保正确设置和同步系统时间。基于时间的一次性密码(TOTP)依赖于准确的计时。
    • 秘密密钥问题:验证google-authenticator生成的秘密键是否由PAM模块正确存储和使用。
  3. 身份验证提示未出现

    • 检查PAM配置顺序/etc/pam.d/sshd事项中的条目顺序。确保不会被后续条目覆盖Google Authenticator条目。
  4. 登录循环或悬挂

    • 调试SSHD :使用带有SSH的-d标志启用调试模式并捕获日志以了解登录过程失败的位置:

       <code>ssh -v user@host</code>
    • 检查日志:检查系统日志是否有任何相关错误消息:

       <code>sudo journalctl -u sshd</code>
  5. 硬件令牌问题

    • 设备驱动程序问题:如果使用Yubikey等硬件令牌,请确保系统安装和识别正确的驱动程序。

通过遵循这些故障排除步骤,您可以解决常见问题并确保2FA在Linux服务器上的SSH正常工作。

以上是如何在Linux中实现SSH的两因素身份验证(2FA)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Linux操作:安全和用户管理Linux操作:安全和用户管理May 06, 2025 am 12:04 AM

Linux用户管理和安全性可以通过以下步骤实现:1.创建用户和组,使用命令如sudouseradd-m-gdevelopers-s/bin/bashjohn。2.批量创建用户和设置密码策略,使用for循环和chpasswd命令。3.检查和修复常见错误,如家目录和shell设置。4.实施最佳实践,如强密码策略、定期审计和最小权限原则。5.优化性能,使用sudo和调整PAM模块配置。通过这些方法,可以有效管理用户和提升系统安全性。

Linux操作:文件系统,进程等Linux操作:文件系统,进程等May 05, 2025 am 12:16 AM

Linux文件系统和进程管理的核心操作包括文件系统的管理和进程的控制。1)文件系统操作包括创建、删除、复制和移动文件或目录,使用命令如mkdir、rmdir、cp和mv。2)进程管理涉及启动、监控和终止进程,使用命令如./my_script.sh&、top和kill。

Linux操作:外壳脚本和自动化Linux操作:外壳脚本和自动化May 04, 2025 am 12:15 AM

Shell脚本是Linux系统中用于自动化执行命令的强大工具。1)Shell脚本通过解释器逐行执行命令,处理变量替换和条件判断。2)基本用法包括备份操作,如使用tar命令备份目录。3)高级用法涉及使用函数和case语句管理服务。4)调试技巧包括使用set-x开启调试模式和set-e在命令失败时退出。5)性能优化建议避免子Shell,使用数组和优化循环。

Linux操作:了解核心功能Linux操作:了解核心功能May 03, 2025 am 12:09 AM

Linux是一个基于Unix的多用户、多任务操作系统,强调简单性、模块化和开放性。其核心功能包括:文件系统:以树状结构组织,支持多种文件系统如ext4、XFS、Btrfs,使用df-T查看文件系统类型。进程管理:通过ps命令查看进程,使用PID管理进程,涉及优先级设置和信号处理。网络配置:灵活设置IP地址和管理网络服务,使用sudoipaddradd配置IP。这些功能在实际操作中通过基本命令和高级脚本自动化得以应用,提升效率并减少错误。

Linux:进入和退出维护模式Linux:进入和退出维护模式May 02, 2025 am 12:01 AM

进入Linux维护模式的方法包括:1.编辑GRUB配置文件,添加"single"或"1"参数并更新GRUB配置;2.在GRUB菜单中编辑启动参数,添加"single"或"1"。退出维护模式只需重启系统。通过这些步骤,你可以在需要时快速进入维护模式,并安全地退出,确保系统的稳定性和安全性。

了解Linux:定义的核心组件了解Linux:定义的核心组件May 01, 2025 am 12:19 AM

Linux的核心组件包括内核、shell、文件系统、进程管理和内存管理。1)内核管理系统资源,2)shell提供用户交互界面,3)文件系统支持多种格式,4)进程管理通过fork等系统调用实现,5)内存管理使用虚拟内存技术。

Linux的构建块:关键组件解释了Linux的构建块:关键组件解释了Apr 30, 2025 am 12:26 AM

Linux系统的核心组成部分包括内核、文件系统和用户空间。1.内核管理硬件资源并提供基本服务。2.文件系统负责数据存储和组织。3.用户空间运行用户程序和服务。

使用维护模式:故障排除和修复Linux使用维护模式:故障排除和修复LinuxApr 29, 2025 am 12:28 AM

维护模式是Linux系统中通过单用户模式或救援模式进入的特殊运行级别,用于系统维护和修复。1.进入维护模式使用命令“sudosystemctlisolaterescue.target”。2.在维护模式中,可以检查并修复文件系统,使用命令“fsck/dev/sda1”。3.高级用法包括重置root用户密码,需挂载文件系统为读写模式并编辑密码文件。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器