為服務器SSH登錄增加2FA驗證

安裝NTP模塊并設置時區

安裝NTP模塊

一般的服務器NTP服務默認是不安裝的,需要安裝NTP模塊【7】并啟用。

運行以下指令檢查你的NTP模塊是否已啟用,已啟用則忽略安裝NTP模塊的內容

timedatectl

如果你的返回內容和以下圖片一樣,則表示NTP未啟用

SSH【3】登錄你的服務器后,更新apt【8】包,安裝Chrony【9】

sudo apt update
sudo apt install chrony

安裝后會自動啟用NTP模塊,再次運行timedatectl【10】指令,預計返回以下內容:

設置時區

以設置時區為上海舉例,運行以下指令,依次回復5,69

sudo dpkg-reconfigure tzdata

配置 Google Authenticator

安裝 Google Authenticator 模塊

運行以下指令進行安裝,Do you want to continue? 中回復y

sudo apt install libpam-google-authenticator

配置 Google Authenticator

運行以下指令進行配置,Do you want authentication tokens to be time-based (y/n) 回復y

google-authenticator

將會返回一個二維碼,使用支持 TOTP【11】?的應用掃描二維碼,如Google Authenticator【12】Apple PasswordAuthy

二維碼下將尾隨Your new secret key is:,也可以在 TOTP 的應用中輸入密鑰進行設置
在Enter code from app (-1 to skip):后輸入你的驗證碼應用中的六位動態驗證碼

優先考慮安全性的話,下面四個問題的回答分別是yyny

這四個問題的中文翻譯為:

  • 您是否希望我更新您的“/root/.google_authenticator”文件?(y/n)
  • 您是否希望禁止多次使用同一個身份驗證令牌?這會將您限制為大約每 30 秒登錄一次,但這會增加您發現甚至阻止中間人攻擊【13】的機會 (y/n)
  • 默認情況下,移動應用每 30 秒生成一個新令牌。為了補償客戶端和服務器之間可能存在的時間偏差【14】,我們允許在當前時間前后各生成一個額外的令牌。這允許身份驗證服務器和客戶端之間最多存在 30 秒的時間偏差。如果您遇到時間同步不佳的問題,可以將窗口大小從默認的 3 個允許代碼(一個前一個代碼、當前代碼、下一個代碼)增加到 17 個允許代碼(8 個前一個代碼、當前代碼和 8 個后一個代碼)。這將允許客戶端和服務器之間最多 4 分鐘的時間偏差。是否要啟用?(y/n)
  • 如果您登錄的計算機未針對暴力破解【15】登錄嘗試進行強化,您可以為身份驗證模塊啟用速率限制【16】。默認情況下,這會將攻擊者每 30 秒的登錄嘗試次數限制為不超過 3 次。是否要啟用速率限制?(y/n) y

為SSH開啟2FA

編輯 PAM 配置文件以啟用 Google Authenticator

路徑為/etc/pam.d/sshd【17】,在頂部添加以下內容(這里推薦使用服務器面板進行編輯)并注釋@include common-auth【19】,這將配合后面的配置禁用密碼驗證

auth required pam_google_authenticator.so

配置 SSH 服務

編輯 SSH 配置文件:/etc/ssh/sshd_config【20】

需要有以下內容,有預設則修改,無預設則添加:

 
PermitRootLogin yes
PasswordAuthentication no
KbdInteractiveAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive

配置完成后重啟ssh服務,以1panel為例,系統-SSH管理-重啟

重新進行服務器SSH連接,效果如下所示,在經過證書驗證后,還需要輸入動態驗證碼才能成功連接

通過修改配置,還可以達成不同的ssh連接條件,以下給出部分示例(記得取消注釋@include common-auth)
允許 root 登錄,使用證書 + 密碼 + 動態驗證碼三重SSH 驗證

 
PermitRootLogin yes
PasswordAuthentication yes
KbdInteractiveAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods publickey,password,keyboard-interactive

允許 root 登錄,使用密碼 + 動態驗證碼雙重SSH 驗證

 
PermitRootLogin yes
PasswordAuthentication yes
KbdInteractiveAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods password,keyboard-interactive

推薦禁用密碼驗證的方式進行SSH連接,僅保留證書和動態驗證碼,即本文給出的例子

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84600.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84600.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84600.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI大模型提示詞工程研究報告:長度與效果的辯證分析

一、核心問題:提示詞長度與模型性能的平衡 核心矛盾:提示詞長度增加 → 信息豐富度↑ & 準確性↑ ? 計算成本↑ & 響應延遲↑ 二、詳細機制分析 (一)長提示詞的優勢(實證數據支持) 案例類型短提…

HttpServletResponse源碼解析

Java Servlet API 中 HttpServletResponse 接口的源碼,這是 Java Web 開發中非常核心的一個接口,用于向客戶端(通常是瀏覽器)發送 HTTP 響應。 public interface HttpServletResponse extends ServletResponse {int SC_CONTINUE …

AI基礎概念

目錄 1、ASR和STT區別 2、流式輸出 定義 原理 應用場景 優點 缺點 3、Ollama 4、mindspore和deepseek r1 v3 5、DeepSeek R1/V3 用的哪個底層AI框架 6、HAI-LLM比tensorflow、pytorch還強么 1. 核心優勢對比 2. 性能表現 3. 適用場景 總結 7、openai用的什么底層…

ubuntu20.04速騰聚創airy驅動調試

1.下載相關資料 下載包括:速騰airy產品手冊.pdf、RSView(用于顯示激光雷達數據)、3d數模文件、 RS-LiDAR-16用戶手冊 以下鏈接進行下載 https://www.robosense.cn/resources 2.連接線路后通過Wireshark抓包后進行本地IP配置 2.1按照線路連…

Redis的大key和熱key如何解決

文章目錄 Redis大Key一、什么是Redis大Key二、大Key的產生原因三、大Key的影響四、大Key的解決方案1. 檢測大Key2. 解決方案(1) 數據拆分(2) 使用壓縮算法(3) 使用合適的數據結構(4) 設置合理的過期時間(5) 合理清理(6) 配置優化 五、預防措施總結 Redis熱key一、熱Key問題的本…

恒溫晶振與溫補晶振的區別

在電子設備領域,晶振如同精準的“心臟起搏器”,為電路提供穩定的時鐘信號。恒溫晶振(OCXO)和溫補晶振(TCXO)作為兩類重要的晶體振蕩器,在不同的應用場景中發揮著關鍵作用,它們的區別…

基于SpringBoot的在線考試智能監控系統設計與實現

目錄 一.🦁前言二.🦁開源代碼與組件使用情況說明三.🦁核心功能1. ?算法設計2. ?Java開發語言3. ?Vue.js框架4. ?部署項目 四.🦁演示效果1. 管理員模塊1.1 用戶管理 2. 教師模塊2.1 考試管理2.2 瀏覽試題列表2.3 添加試題2.4 成…

0基礎學Python系列【16】自動化郵件發送的終極教程:Python庫smtplib與email詳解

大家好,歡迎來到Python學習的第二站!?? Python自帶了一些超好用的模塊,可以讓你不必從頭寫代碼就能實現很多功能。比如數學計算、文件操作、網絡通信等。花姐會挑選常用的一些模塊來講解,確保你能在實際項目中用到。?? 本章要學什么? 接下來花姐會深入淺出的講解下面…

環衛車輛定位與監管:安心聯車輛監控管理平臺--科技賦能城市環境衛生管理

一、 引言 城市環境衛生是城市文明的重要標志,也是城市管理的重要內容。隨著城市化進程的加快,環衛作業范圍不斷擴大,環衛車輛數量不斷增加,傳統的管理模式已難以滿足現代化城市管理的需求。為提高環衛作業效率,加強環…

GIS 數據質檢:驗證 Geometry 有效性

前言 在GIS開發中,數據的幾何有效性直接影響分析結果的準確性。無效的幾何(如自相交、空洞或坐標錯誤)可能導致空間計算失敗或輸出偏差。無論是Shapefile、GeoJSON還是數據庫中的空間數據,幾何質檢都是數據處理中不可忽視的關鍵步…

AI大模型學習之基礎數學:高斯分布-AI大模型概率統計的基石

🧑 博主簡介:CSDN博客專家、CSDN平臺優質創作者,高級開發工程師,數學專業,10年以上C/C, C#, Java等多種編程語言開發經驗,擁有高級工程師證書;擅長C/C、C#等開發語言,熟悉Java常用開…

HarmonyOS性能優化——耗時操作減少

耗時操作減少 在應用開發中,避免主線程執行冗余和耗時操作至關重要。這可以降低主線程負載,提升UI響應速度。 避免主線程冗余操作 冗余操作是不必要的、重復執行且對程序功能無實質性貢獻的操作。這些操作浪費計算資源,降低程序運行效率&a…

emscripten 編譯 wasm 版本的 openssl

搭建emscripten環境【參考:https://emscripten.org/docs/getting_started/downloads.html】 下載openssl解壓復制到emsdk目錄 依次執行下列命令: cd emsdk #激活emsdk source ./emsdk_env.shcd opensslemconfigure ./Configure linux-x32 -no-asm -sta…

uniapp 實戰新聞頁面(一)

新聞系統 一、 創建項目 創建個人中心 page.json 配置 tabar "tabBar": {"color":"#666","selectedColor": "#31C27C","list": [{"text": "首頁","pagePath": "pages/inde…

JAVA鎖機制:對象鎖與類鎖

JAVA鎖機制:對象鎖與類鎖 在多線程編程中,合理使用鎖機制是保證數據一致性和線程安全的關鍵。本文將通過示例詳細講解 Java 中的對象鎖和類鎖的原理、用法及區別。 一、未加鎖的并發問題 先看一段未加鎖的代碼: public class Synchronize…

maxcomputer 和 hologres中的EXTERNAL TABLE 和 FOREIGN TABLE

在阿里云的大數據和實時數倉產品中,MaxCompute 和 Hologres 都支持類似于 EXTERNAL TABLE 和 FOREIGN TABLE 的機制,但它們的實現和語義有所不同。 下面分別說明: ?? 一、MaxCompute 中的 EXTERNAL TABLE 和 FOREIGN TABLE 1. EXTERNAL T…

穩定幣:從支付工具到金融基礎設施的技術演進與全球競爭新格局

引言:穩定幣的崛起與金融體系重構 2025年6月,全球穩定幣市值突破2500億美元歷史大關,單年鏈上交易額高達35萬億美元——這一數字已超越Visa和萬事達卡交易總和。這一里程碑事件標志著穩定幣已從加密貨幣市場的邊緣實驗,蛻變為重構…

用 HTML、CSS 和 jQuery 打造多頁輸入框驗證功能

多頁輸入框驗證功能總結:使用 HTML、CSS 和 jQuery 實現 一、多頁表單驗證的核心概念與應用場景 多頁輸入框驗證是指將復雜表單拆分為多個頁面或步驟,逐步引導用戶完成輸入,并在每一步對用戶輸入進行驗證的功能。這種設計具有以下優勢: 提升用戶體驗:避免長表單帶來的心…

DeepSpeed 深度學習學習筆記:高效訓練大型模型

主要參考官網文檔,對于具體內容還需參考官方文檔 1. 引言:為什么需要 DeepSpeed? 大型模型訓練的挑戰 隨著深度學習模型規模的爆炸式增長(從 BERT 的幾億參數到 GPT-3 的千億參數,再到現在的萬億參數模型&#xff09…

編程基礎:耦合

能幫到你的話,就給個贊吧 😘 文章目錄 耦合:功能的單一性,功能越拆分則單一功能越好維護 耦合:功能的單一性,功能越拆分則單一功能越好維護