服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Fedora - 在Fedora上为SSH设置双因子验证

在Fedora上为SSH设置双因子验证

2023-05-09 01:01未知服务器之家 Fedora

每天似乎都有一个安全漏洞的新闻报道,说我们的数据会因此而存在风险。尽管 SSH 是一种远程连接系统的安全方式,但你仍然可以使它更安全。本文将向你展示如何做到这一点。 此时双因子验证two-factor authentication(2FA)就有用武

在Fedora上为SSH设置双因子验证
每天似乎都有一个安全漏洞的新闻报道,说我们的数据会因此而存在风险。尽管 SSH 是一种远程连接系统的安全方式,但你仍然可以使它更安全。本文将向你展示如何做到这一点。

此时双因子验证two-factor authentication(2FA)就有用武之地了。即使你禁用密码并只允许使用公钥和私钥进行 SSH 连接,但如果未经授权的用户偷窃了你的密钥,他仍然可以借此访问系统。

使用双因子验证,你不能仅仅使用 SSH 密钥连接到服务器,你还需要提供手机上的验证器应用程序随机生成的数字。

本文展示的方法是基于时间的一次性密码Time-based One-time Password(TOTP)算法。Google Authenticator 用作服务器应用程序。默认情况下,Google Authenticator 在 Fedora 中是可用的。

至于手机,你可以使用与 TOTP 兼容的任何可以双路验证的应用程序。Andorid 或 iOS 有许多可以与 TOTP 和 Google Authenticator 配合使用的免费应用程序。本文与 FreeOTP 为例。

安装并设置 Google Authenticator

首先,在你的服务器上安装 Google Authenticator。 $ sudo dnf install -y google-authenticator

运行应用程序:

$ 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

这个应用程序为你提供一个密钥、验证码和恢复码。把它们放在安全的地方。如果你丢失了手机,恢复码是访问服务器的唯一方式。

设置手机验证

在你的手机上安装验证器应用程序(FreeOTP)。如果你有一台安卓手机,那么你可以在 Google Play 中找到它,也可以在苹果 iPhone 的 iTunes 商店中找到它。

Google Authenticator 会在屏幕上显示一个二维码。打开手机上的 FreeOTP 应用程序,选择添加新账户,在应用程序顶部选择二维码形状工具,然后扫描二维码即可。设置完成后,在每次远程连接服务器时,你必须提供验证器应用程序生成的随机数。

完成配置

应用程序会向你询问更多的问题。下面示例展示了如何设置合理的安全配置。

Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y
By default, tokens are good for 30 seconds. In order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of +-1min (window size of 3) to about +-4min (window size of 17 acceptable tokens).
Do you want to do so? (y/n) n
If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

现在,你必须设置 SSH 来利用新的双路验证。

配置 SSH

在完成此步骤之前,确保你已使用公钥建立了一个可用的 SSH 连接,因为我们将禁用密码连接。如果出现问题或错误,一个已经建立的连接将允许你修复问题。

在你的服务器上,使用 sudo 编辑 /etc/pam.d/sshd 文件。

$ sudo vi /etc/pam.d/ssh

注释掉 auth substack password-auth 这一行:

#auth substack password-auth

将以下行添加到文件底部:

auth sufficient pam_google_authenticator.so

保存并关闭文件。然后编辑 /etc/ssh/sshd_config 文件:

$ sudo vi /etc/ssh/sshd_config

找到 ChallengeResponseAuthentication 这一行并将其更改为 yes:

ChallengeResponseAuthentication yes

找到 PasswordAuthentication 这一行并将其更改为 no:

PasswordAuthentication no

将以下行添加到文件底部:

AuthenticationMethods publickey,password publickey,keyboard-interactive

保存并关闭文件,然后重新启动 SSH:

$ sudo systemctl restart sshd

测试双因子验证

当你尝试连接到服务器时,系统会提示你输入验证码:

[user@client ~]$ ssh user@example.com
Verification code:

验证码由你手机上的验证器应用程序随机生成。由于这个数字每隔几秒就会发生变化,因此你需要在它变化之前输入它。

如果你不输入验证码,你将无法访问系统,你会收到一个权限被拒绝的错误:

[user@client ~]$ ssh user@example.com
Verification code:
Verification code:
Verification code:
Permission denied (keyboard-interactive).
[user@client ~]$

结论

通过添加这种简单的双路验证,现在未经授权的用户访问你的服务器将变得更加困难。

via: https://fedoramagazine.org/two-factor-authentication-ssh-fedora/

作者:Curt Warfield 选题:lujun9972 译者:MjSeven 校对:wxy

延伸 · 阅读

精彩推荐
  • Fedora阿里云购买镜像服务器

    阿里云购买镜像服务器

    阿里云 作为国内的领先云计算服务提供商,为用户提供了各种可靠、高效的云计算产品,其中就包括镜像服务器。镜像服务器是一个非常优秀的解决方案,...

    未知1342023-06-02
  • FedoraFedora 35 将搭载 LLVM 13 和 Go 1.17

    Fedora 35 将搭载 LLVM 13 和 Go 1.17

    Fedora工程和指导委员会 (FESCo) 批准了将于秋季发布的 Fedora 35 的一些额外变更。...

    开源中国6002021-08-19
  • Fedorafedora8 下mysql 安装的安装方法

    fedora8 下mysql 安装的安装方法

    fedora8 下mysql 安装的安装方法...

    fedora教程网6422019-10-14
  • FedoraFedora 33开始测试切换到Btrfs

    Fedora 33开始测试切换到Btrfs

    尽管距离 Fedora 的下一个稳定版本(Fedora 33)还有几个月的距离,但仍有一些值得关注的变化。在所有其他 Fedora 33 接受的系统范围的更改中,最有趣的提议...

    Linux中国3392020-07-27
  • Fedorafedora phpMyAdmin 安装方法及介绍

    fedora phpMyAdmin 安装方法及介绍

    在安装fedora的时候,把基本该选择的组件都选上,其中就有Appache,mysql,和php,但是在我们管了数据库的时候,还是有个图形界面比较方便,所以我们自己...

    fedora教程网5742019-10-15
  • FedoraHostwinds教程:如何在Fedora上安装Docker

    Hostwinds教程:如何在Fedora上安装Docker

    docker 是一个开源应用容器引擎,以类似于虚拟机但不虚拟化的方式在自包含的环境中创建相关应用程序和服务。您可以在多个平台上下载并安装Docker,比如...

    未知1232023-05-09
  • Fedora【转载】fedora22和win10之间的文件共享互访

    【转载】fedora22和win10之间的文件共享互访

      钢铁侠与孔子  关注 2016.06.04 14:10*  字数 1327  阅读 2170 评论 0 喜欢 1  一,相关知识了解(本文执行环境为fedora22和win10) 在局域网内windows系统之间共享...

    未知872023-05-09
  • Fedora阿里云服务器配置低选择什么系统比较好

    阿里云服务器配置低选择什么系统比较好

    在选择阿里 云服务器 时,除了考虑服务器的大小和价格,还需要考虑哪个操作系统最适合该服务器。操作系统是服务器的基础,因为它提供了一个框架,...

    未知1152023-05-10