運維技術教程之Jenkins上的known_hosts文件

在Jenkins中,known_hosts文件用于存儲已驗證的遠程節點主機密鑰,避免每次連接時重復驗證。以下是基于不同場景的解決方案:


1. 創建并配置 known_hosts 文件

若Jenkins提示 No Known Hosts file 或找不到文件,需手動創建并配置:

  • 創建目錄及文件
    sudo mkdir -p /var/lib/jenkins/.ssh/  # 根據實際JENKINS_HOME路徑調整
    sudo touch /var/lib/jenkins/.ssh/known_hosts
    sudo chown jenkins:jenkins /var/lib/jenkins/.ssh/known_hosts
    sudo chmod 600 /var/lib/jenkins/.ssh/known_hosts
    
  • 添加目標節點的公鑰
    1. 以Jenkins用戶身份執行:
      ssh <節點用戶名>@<節點IP>  # 首次連接會提示接受主機密鑰
      
    2. 將本地用戶~/.ssh/known_hosts中對應的節點公鑰行復制到Jenkins的known_hosts文件中[3][5]。

2. 調整主機密鑰驗證策略

若不想手動管理known_hosts,可修改Jenkins的主機密鑰驗證策略

  • 進入節點配置頁面
    • 啟動方式選擇 Launch agent agents via SSH
    • Host Key Verification Strategy 改為 Manually trusted key verification strategy[3][4]。
    • 保存后,Jenkins會跳過自動校驗,但需確保目標節點已正確配置SSH免密登錄。

3. 配置SSH免密登錄

確保Jenkins用戶與目標節點之間的SSH免密登錄已配置:

  1. 生成SSH密鑰對(若未生成):
    sudo -u jenkins ssh-keygen -t rsa -b 4096  # 以Jenkins用戶生成
    
  2. 部署公鑰到目標節點
    sudo -u jenkins ssh <節點用戶名>@<節點IP> 'cat >> ~/.ssh/authorized_keys' < /var/lib/jenkins/.ssh/id_rsa.pub
    
  3. 設置權限
    sudo -u jenkins chmod 700 /var/lib/jenkins/.ssh/authorized_keys
    

4. 其他注意事項

  • 路徑一致性:Jenkins的.ssh目錄通常位于/var/lib/jenkins//var/jenkins_home/,需根據實際環境確認[1][3]。
  • 權限檢查:確保Jenkins用戶對.ssh目錄及文件有讀寫權限(chmod 600 known_hostschown jenkins:jenkins)。
  • 重啟Jenkins:配置變更后,需重啟Jenkins服務以生效:
    sudo systemctl restart jenkins
    

總結

  • 優先推薦:手動創建known_hosts并配置免密登錄,確保安全性和穩定性。
  • 快速繞過:臨時將驗證策略改為Manually trusted key verification,但長期需補全known_hosts以避免安全風險[3][5]。

通過以上步驟,可解決Jenkins因known_hosts缺失或校驗失敗導致的連接問題。

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

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

相關文章

leetcode 3201. 找出有效子序列的最大長度 I 中等

給你一個整數數組 nums。nums 的子序列 sub 的長度為 x &#xff0c;如果其滿足以下條件&#xff0c;則稱其為 有效子序列&#xff1a;(sub[0] sub[1]) % 2 (sub[1] sub[2]) % 2 ... (sub[x - 2] sub[x - 1]) % 2返回 nums 的 最長的有效子序列 的長度。一個 子序列 指的…

Java并發編程第三篇(深入解析Synchronized)

1. Synchronized簡介&#xff1a;一個常見的并發“陷阱” 在正式開始學習新知識前&#xff0c;我們不妨先來看一個現象&#xff0c;這是一個很多并發編程新手都會遇到的“陷阱”&#xff1a; public class SynchronizedDemo implements Runnable {// 共享變量private static in…

Chatbox AI|多模型多模態交互+MCP,一個工具打造你的全能私人助手

ChatBoxAI集成GPT-4、Claude等頂尖模型&#xff0c;支持Windows/macOS/Linux多平臺&#xff0c;具備隱私加密、文件智能解析&#xff08;PDF/代碼/圖片&#xff09;及開發者友好特性。其應用覆蓋自媒體創作、代碼實時預覽、AI繪圖&#xff08;封面/表情包&#xff09;及聯網搜索…

在Autodl服務器中使用VNC建立圖形界面

在Autodl服務器中使用VNC建立圖形界面**AutoDL 3D 圖形桌面搭建教程****第一步&#xff1a;安裝桌面和 VNC****第二步&#xff1a;進行一次性配置****第三步&#xff1a;日常啟動與使用**AutoDL 3D 圖形桌面搭建教程 目標: 在你的 AutoDL 環境上&#xff0c;以最少的步驟搭建一…

CD54.【C++ Dev】vector和list的反向迭代器的實現

目錄 1.反向迭代器的功能 2.算法 方法1:新寫一個類用于反向迭代器 方法2:封裝正向迭代器實現反向迭代器 解析operator* 正向迭代器和反向迭代器的關系 返回 *--tmp的原因 3.為自制的vector和list編寫反向迭代器 編寫統一的反向迭代器 修改vector頭文件 修改list頭文…

如何解決pip安裝報錯ModuleNotFoundError: No module named ‘django’問題

【Python系列Bug修復PyCharm控制臺pip install報錯】如何解決pip安裝報錯ModuleNotFoundError: No module named ‘django’問題 摘要 在日常 Django 項目開發中&#xff0c;最常見的“攔路虎”之一就是 ModuleNotFoundError: No module named django。該異常通常在以下場景出…

單頁面和多頁面的區別和優缺點

單頁面應用&#xff08;SPA&#xff09;與多頁面應用&#xff08;MPA&#xff09;的區別單頁面應用&#xff08;SPA&#xff09;整個應用只有一個HTML文件&#xff0c;內容通過JavaScript動態加載和渲染。頁面切換時無需重新加載整個頁面&#xff0c;僅更新部分DOM。依賴前端框…

暑期自學嵌入式——Day05(C語言階段)

接續上文&#xff1a;暑期自學嵌入式——Day04&#xff08;C語言階段&#xff09;-CSDN博客 點關注不迷路喲。你的點贊、收藏&#xff0c;一鍵三連&#xff0c;是我持續更新的動力喲&#xff01;&#xff01;&#xff01; 主頁&#xff1a; 一位搞嵌入式的 genius-CSDN博客 …

通用人工智能AGI遙遙無期,面臨幻滅

通用人工智能AGI有可能2080年前也實現不了 首先說一下&#xff0c;目前的人工智能方向是錯的&#xff0c;通用人工智能不值得追捧。 真的特別無奈&#xff0c;現在還有很多人在吹AI&#xff0c;說什么2027年就能實現AGI&#xff0c;如果你指的是真正的強人工智能AGI&#xff0c…

智能體開發工具鏈全景圖:IDE、調試器與監控平臺

智能體開發工具鏈全景圖&#xff1a;IDE、調試器與監控平臺 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 總有一行代碼&#xff0c;能點亮萬千星辰。 &#x1f50d; 在技術的宇宙中&#xff0c;我愿做永不停歇的探索者。 ? 用代碼丈量世界&…

三十四、【擴展工具篇】JSON 格式化與解析:集成 Monaco Editor 打造在線 JSON 工具

三十四、【擴展工具篇】JSON 格式化與解析:集成 Monaco Editor 打造在線 JSON 工具 前言 功能概覽 技術選型 實現步驟 第一步:添加路由和側邊欄菜單入口 第二步:創建 JSON 工具頁面 第三部分:全面測試與驗證 總結 前言 在日常的接口開發和測試中,我們經常需要處理 JSON 數…

MySQL高可用集群架構:主從復制、MGR與讀寫分離實戰

1. MySQL高可用架構概述 MySQL高可用性(High Availability)解決方案旨在確保數據庫服務在硬件故障、網絡問題等異常情況下仍能持續提供服務。以下是主流的高可用方案對比: 方案 原理 優點 缺點 適用場景 主從復制 基于binlog的異步復制 簡單易用,對性能影響小 數據一致性弱,…

JxBrowser 7.43.5 版本發布啦!

在此版本中&#xff0c;我們進行了錯誤修復和穩定性改進。 &#x1f517; 點擊此處了解更多詳情。 &#x1f193; 獲取 30 天免費試用。

借助AI學習開源代碼git0.7之編譯和使用

如何學習優秀的開源代碼&#xff1f;目前大部分的優秀開源代碼&#xff0c;代碼量都已經非常龐大&#xff0c;比如git。以git為例&#xff0c;git最新版本代碼有279814行&#xff0c; 而git0.7版本已經大部分實現了現在git版本的基本功能&#xff0c;而代碼量卻只有4950行&…

ObservableCollection全面解析

本文僅作為參考大佬們文章的總結。 ObservableCollection是C#中一個功能強大的動態數據集合類&#xff0c;特別適用于需要數據綁定和UI自動更新的場景。本文將系統性地總結ObservableCollection的核心概念、使用方法、性能優化策略以及在實際項目中的應用實踐。 一、Observab…

佰力博檢測與您探討超高溫介電測試的應用領域

超高溫介電測試是指在極端高溫條件下&#xff08;通常高于1000℃&#xff09;對材料的介電性能進行測量和分析的過程。以評估材料在高溫環境下的電學性能穩定性&#xff0c;如介電常數、介電損耗、阻抗譜等參數。超高溫介電測試需要用到的超高溫介電阻抗測試設備&#xff1a;UT…

OneCode自治UI核心組件Layout布局介紹:構建靈活高效的界面布局系統

在現代前端開發中&#xff0c;布局系統扮演著至關重要的角色&#xff0c;它不僅決定了界面的結構美感&#xff0c;更直接影響用戶體驗和開發效率。OneCode作為一款企業級低代碼開發平臺&#xff0c;其布局引擎通過精巧的設計實現了簡潔API與強大功能的完美平衡。本文將深入剖析…

為何“白名單媒體”是性價比之選?

在信息媒體空前發展的今天&#xff0c;軟文營銷已成為企業品牌推廣的重要手段之一。然而&#xff0c;面對眾多媒體&#xff0c;如何選擇高性價比的發稿媒體成為許多營銷人員的一個課題。其中&#xff0c;“白名單媒體”憑借其高收錄率、權威背書等優勢&#xff0c;逐漸成為軟文…

Python 異步編程之 async 和 await

基礎知識 在 Python 中&#xff0c;async 和 await 是用于異步編程的關鍵字&#xff0c;引入了異步/協程&#xff08;coroutine&#xff09;的概念。核心思想是通過 協程&#xff08;Coroutine&#xff09; 和 事件循環&#xff08;Event Loop&#xff09; 實現非阻塞并發&…

關于接口測試的HTTP基礎【接口測試】

HTTP 協議基礎知識總結&#xff08;用于 Web API 接口測試&#xff09;接口測試中最常用的通訊協議就是 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;&#xff0c;本節旨在幫助理解 HTTP 協議的結構、工作流程以及如何用于接口測試。一、HTTP 協議簡介HTTP 是一種…