Linux中为SSH启用双因素身份验证

Linux中为SSH启用双因素身份验证无论您是将 FedoraLinux 用于桌面还是服务器 都应考虑为 SecureShell SSH 登录启用双因素身份验证 为什么 因为 SSH 是远程登录服务器的主要方式 所以您最不希望的是将该服务保持打开状态以进行攻击 更好地锁定它的一种方法是为 SSH 启用双因素身份验证 我想引导您完成这样做的步骤 这样您就可以享受 Fedora 台式机和服务器的更高安全性 准备 Fedora

无论您是将Fedora Linux用于桌面还是服务器,都应考虑为Secure Shell(SSH)登录启用双因素身份验证。为什么?因为SSH是远程登录服务器的主要方式,所以您最不希望的是将该服务保持打开状态以进行攻击。

更好地锁定它的一种方法是为SSH启用双因素身份验证。我想引导您完成这样做的步骤,这样您就可以享受Fedora台式机和服务器的更高安全性。

准备:Fedora的一个实例启动并运行。具有sudo访问权限的用户帐户。您的移动设备上的第三方身份验证器应用程序(例如Authy)。

在您开始讨论之前,我强烈建议您在直接访问Fedora的物理计算机上测试。如果出现问题,您能够直接登录到计算机,可以更方便解决问题。

安装

第一步是安装Google身份验证器。打开终端窗口并发出以下命令:

sudo dnf install google-authenticator nano -y

安装完成后,使用以下命令运行该工具:

google-authenticator

您将被问到以下问题:

Do you want authentication tokens to be time-based (y/n) y

Do you want me to update your “/home/user/.google_authenticator” file (y/n)? y

然后,应用程序将显示QR码,您需要扫描到Authy(在移动设备上)。您还将获得一个密码列表,您需要将其复制并保存在一个安全的秘密位置。成功扫描QR码并保存恢复代码后,您将再被问到三个问题(同样,每个问题都回答“是”)。

配置SSH

在此之前,请确保您可以SSH到Fedora计算机。开箱即用,SSH守护程序可能未运行,因此请使用以下命令启动并启用它:

sudo systemctl start sshd

sudo systemctl enable sshd

SSH运行并启用后,请确保从您计划用于获取远程访问权限的任何/所有计算机上将SSH密钥复制到此计算机(用于SSH密钥身份验证)。这可以通过从需要访问的每台机器运行以下命令来完成:

ssh-copy-id USER @ FEDORA_IP

USER是Fedora机器上的用户名,FEDORA_IP是Fedora机器的IP地址。

一旦您能够使用SSH密钥身份验证SSH到Fedora计算机,就可以配置SSH以使用双因素身份验证。从终端窗口(在Fedora机器上),发出命令:

sudo nano /etc/pam.d/sshd

注释掉第一行(通过在开头添加#symbole)。该行现在看起来像:

#auth substack password-auth

在文件的底部,添加以下行:

auth sufficient pam_google_authenticator.so

保存并关闭该文件。

接下来,我们需要配置SSH守护进程。发出命令:

sudo nano / etc / ssh / sshd_config

首先,将ChallengeResponseAuthentication从no更改为yes,如下所示:

ChallengeResponseAuthentication是的

接下来,将PasswordAuthentication更改为no,如下所示:

PasswordAuthentication no

最后,将以下内容添加到该文件的底部:

AuthenticationMethods publickey,password publickey,keyboard-interactive

保存并关闭文件。

使用以下命令重新启动SSH守护程序:

sudo systemctl restart sshd

登录

准备好登录。从您的一台客户端计算机上,打开终端窗口并发出命令:

ssh USER @ FEDORA_IP

USER是Fedora机器上的用户名,FEDORA_IP是Fedora机器的IP地址。系统将提示您输入验证码(图A),您将从移动验证应用中检索该验证码。

Linux中为SSH启用双因素身份验证

图A:我们提供验证码的SSH提示。

输入代码后,您应该可以访问该计算机(因为您设置了SSH密钥身份验证)。

恭喜,您现在可以为Fedora机器设置双因素身份验证。每当有人尝试使用SSH登录该服务器或桌面时,如果没有您的移动身份验证应用程序生成的双因素身份验证代码,他们将无法访问。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233240.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql decimal php,PHP中的MySQL DECIMAL处理

    mysql decimal php,PHP中的MySQL DECIMAL处理如通常讨论的那样(例如Storing0.00001inMySQL),DECIMAL数据类型应用于需要精确度/正确性的字段,例如帐户余额.但是,我想知道PHP如何处理这些值,以及如果它们在内部以浮点数进行处理,那么从数据库读取这些值,进行一些计算并再次写回它们时是否仍然存在问题.如果是这样,我们如何才能迫使PHP保持精度?解决方法:该变量可能是最初在PHP中的字符串(从MySQL结果对象读取时…

    2022年7月17日
    9
  • Werkzeug Turorial「建议收藏」

    Werkzeug Turorial「建议收藏」Werkzeug不是一个framework,而是一个library,用来开发application和framework一个WSGI的application像这样:defapplication(environ,start_response):start_response(‘200OK’,[(‘Content-Type’,’text/plain’)])return[‘HelloWorld!’]一个WSGIapplication是一个可以调用的,有environ(dic

    2022年9月28日
    0
  • 字符数组初始化问题解法_字符数组和字符串的区别

    字符数组初始化问题解法_字符数组和字符串的区别在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式:(1)chara[10]=””; (2)chara[10]={‘\0′}; (3)chara[10];str[0]=’\0’;第1,2种方式是将a数组的所有元素都初始化为’\0’,而第3种方式是只将str数组的第一个元素初始化为’\0’。如果数组的size非常大,那么前两种方式…

    2022年8月31日
    2
  • VMWare14 安装Mac OS系统(操作图解)

    VMWare14 安装Mac OS系统(操作图解)近日恰逢双十一,瞅了瞅自己干瘪的钱包,没忍心入手期待已久的macPro,只好在虚拟机里玩一下mac好了,等以后钱包傲气的时候再来个真实的。安装环境:windows10VMWare14.2VMwareWorkstationPro14已安装或自行安装Unlocker(链接:https://pan.baid…

    2022年6月2日
    34
  • java etl 简单实例_东方通ETL开发实例[通俗易懂]

    java etl 简单实例_东方通ETL开发实例[通俗易懂]东方通ETL开发实例下面通过一个简单的“OracleCDC增量抽取”实例,带大家感受一下TIETL的开发思路和强大的数据处理能力。功能需求:同一数据库(localhost_etl)下,现有cdc_source和cdc_target两张表如下:表cdc_source表cdc_target现表cdc_source的增量(增、删、改)需同步到cdc_target中TIETL环境下开发思路:类似于jav…

    2022年5月1日
    41
  • java后端知识概述

    java后端知识概述1,java基础知识包括基本语法,集合类框架,以及java语言的特性,jvm等基本知识点,还有一些高级特性,比如反射,注解等等。2,设计模式设计模式是为了可重用代码,让代码更容易被他人理解、保证代码的可靠性的。通常来说,设计模式在系统开发中都是必不可少的。因为这样会简化,降低系统实现过程中要解决的问题。设计模式是软件工程的基石脉络,而模式是在某一背景下某个问题的一种解决方案。常见的设计模式有工厂模式,单例模式,mvc模式等等。而在开发中,所用到的设计模式,往往会根据实际背景去选择某一设计模式。

    2022年7月7日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号