如何在 Kali 上解決使用 evil-winrm 時 Ruby Reline 的 quoting_detection_proc 警告

在使用 Kali Linux 運行 Ruby 工具(例如 evil-winrm)時,你可能會遇到以下警告:

Warning: Remote path completions is disabled due to ruby limitation: undefined method 'quoting_detection_proc' for module Reline

在這里插入圖片描述

這個警告會導致遠程路徑補全功能被禁用,影響使用體驗。本文將解釋問題的原因,并提供一個簡單快速的解決方案——在 Kali Linux 上運行 gem install readline-ext,即可解決問題。

問題背景

從 Ruby 3.0 開始,Ruby 默認使用 Reline 庫處理終端輸入,取代了傳統的 Readline 庫。Reline 是純 Ruby 實現,但缺少 Readline 的一些功能,例如 quoting_detection_proc 方法。

quoting_detection_proc 用于在 tab 補全時處理帶引號的字符串(例如,補全包含空格的文件路徑)。像 evil-winrm 這樣的工具依賴這個方法來實現遠程路徑補全,但 Reline 不支持它,因此觸發警告并禁用補全功能。

問題原因

  1. Reline 的局限性

    • Reline 尚未實現 Readline 的所有 API,尤其是 quoting_detection_proc,導致依賴該方法的工具無法正常工作。
  2. 工具的依賴

    • evil-winrm 在實現 tab 補全時會檢查 quoting_detection_proc 的支持情況。如果不支持,就打印警告并禁用遠程路徑補全。
  3. Kali 的環境

    • 雖然 Kali 默認包含 Readline 庫(如 libreadline8),但 Ruby 默認優先使用 Reline,需要手動切換到 Readline

解決方案

好消息是,Kali Linux 已經包含了必要的 Readline 庫,只需安裝 readline-ext gem 即可讓 Ruby 使用原生的 Readline,從而恢復 quoting_detection_proc 支持。

步驟 1:安裝 readline-ext Gem

  1. 打開終端,運行以下命令:

    gem install readline-ext
    
    • 這會安裝 readline-ext gem,它會調用系統提供的 Readline 庫,優先于 Reline
  2. 等待安裝完成,通常只需幾秒鐘。

步驟 2:驗證安裝

確認 readline-ext 是否正確加載:

  1. 啟動 Ruby 交互模式:

    irb
    
  2. 輸入以下代碼:

    require 'readline'
    puts Readline.respond_to?(:quoting_detection_proc)
    
    • 如果輸出 true,說明 Readline 已成功啟用,支持 quoting_detection_proc

步驟 3:測試工具

evil-winrm 為例,重新運行你的工具:

evil-winrm -i <目標IP> -u <用戶名> -p <密碼>
  • 警告應該消失。
  • 測試 tab 補全功能,例如輸入 dir C:\Pro 后按 tab 鍵,確認是否能正確補全路徑(如 C:\Program Files)。

如果問題仍未解決

在極少數情況下,如果你仍然看到警告,可能是以下原因:

  1. Ruby 環境問題

    • 確認當前 Ruby 版本:
      ruby -v
      
    • 如果使用 rbenvrvm,確保 readline-ext 安裝在正確的 Ruby 環境中:
      gem list | grep readline-ext
      
  2. 缺失系統庫

    • 雖然 Kali 通常包含 Readline 庫,但可以確認是否安裝:
      dpkg -l | grep libreadline
      
    • 如果未找到相關包,安裝 libreadline-dev
      sudo apt-get update
      sudo apt-get install libreadline-dev
      
    • 然后重新運行 gem install readline-ext
  3. 工具特定問題

    • 檢查工具(如 evil-winrm)的版本是否最新:
      gem update evil-winrm
      
    • 查看 GitHub 倉庫是否有相關修復。

其他替代方案

如果你不想安裝 readline-ext,可以考慮以下選項:

  1. 忽略警告

    • 如果遠程路徑補全不重要,可以直接忽略警告。它不會影響工具的核心功能(如連接或命令執行)。
  2. 修改工具代碼

    • 編輯工具源代碼,繞過對 quoting_detection_proc 的檢查。這需要 Ruby 編程經驗,且可能導致補全功能不完整。

注意事項

  • 保持更新:定期檢查 Reline 和工具的更新。未來 Reline 可能支持 quoting_detection_proc,徹底解決此問題。
  • Docker 環境:如果在 Kali 的 Docker 容器中運行,可能需要確保容器內有 Readline 庫或直接安裝 libreadline-dev
  • 社區支持:如果問題持續,可以在工具(如 evil-winrm)或 Reline 的 GitHub 倉庫提交 issue。

總結

在 Kali Linux 上,只需運行 gem install readline-ext,你就可以輕松解決 Relinequoting_detection_proc 警告,恢復遠程路徑補全功能。這個方法簡單高效,適用于大多數 Kali 用戶。

希望這篇博文能幫你快速解決這個小麻煩!如果有其他問題,歡迎隨時交流。

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

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

相關文章

工資管理系統的主要功能有哪些

工資管理系統通過自動化薪資計算、稅務處理、員工數據管理、報表生成等功能&#xff0c;極大地提升了薪資發放的效率和準確性。在傳統的人工薪資管理中&#xff0c;HR人員需要手動計算每位員工的薪資&#xff0c;并確保符合稅務要求&#xff0c;極易出錯且耗時。而現代工資管理…

C++語言程序設計——02 變量與數據類型

目錄 一、變量與數據類型&#xff08;一&#xff09;變量的數據類型&#xff08;二&#xff09;變量命名規則&#xff08;三&#xff09;定義變量&#xff08;四&#xff09;變量賦值&#xff08;五&#xff09;查看數據類型&#xff08;六&#xff09;數據類型的字節長度&…

咋用fliki的AI生成各類視頻?AI生成視頻教程

最近想制作視頻&#xff0c;多方考查了決定用fliki&#xff0c;于是訂閱了一年試試&#xff0c;這個AI生成的視頻效果來看真是不錯&#xff0c;感興趣的自己官網注冊個賬號體驗一下就知道了。 fliki官網 Fliki生成視頻教程 創建賬戶并登錄 首先&#xff0c;訪問fliki官網并注…

文章記單詞 | 第32篇(六級)

一&#xff0c;單詞釋義 inferior [?n?f??ri?(r)] adj. 較差的&#xff1b;次的&#xff1b;下級的&#xff1b;n. 下屬&#xff1b;次品joy [d???] n. 歡樂&#xff1b;喜悅&#xff1b;樂趣&#xff1b;樂事&#xff1b;v. 因… 而高興resemble [r??zembl] vt. 類…

windows上安裝Jenkins

1. 下載windows版 jenkins安裝包 2. 配置本地安全策略 在 Windows 11/10 上打開本地安全策略。 Secpol.msc 或本地安全策略編輯器是一個 Windows 管理工具&#xff0c;允許您在本地計算機上配置和管理與安全相關的策略。 安全設置-》本地策略-》用戶權限分配-》作為服務登錄…

dfs二叉樹中的深搜(回溯、剪枝)--力扣129、814、230、257

目錄 1.1題目鏈接&#xff1a;129.求根節點到葉結點數字之和 1.2題目描述&#xff1a;給你一個二叉樹的根節點 root &#xff0c;樹中每個節點都存放有一個 0 到 9 之間的數字。 1.3解法(dfs-前序遍歷)&#xff1a; 2.1題目鏈接&#xff1a;814.二叉樹剪枝 2.2題目描述&…

【樹形dp題解】dfs的巧妙應用

【樹形dp題解】dfs的巧妙應用 [P2986 USACO10MAR] Great Cow Gathering G - 洛谷 題目大意&#xff1a; Bessie 正在計劃一年一度的奶牛大集會&#xff0c;來自全國各地的奶牛將來參加這一次集會。當然&#xff0c;她會選擇最方便的地點來舉辦這次集會。 每個奶牛居住在 N N …

【c++深入系列】:new和delete運算符詳解

&#x1f525; 本文專欄&#xff1a;c &#x1f338;作者主頁&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客勵志語錄&#xff1a; “生活不會向你許諾什么&#xff0c;尤其不會向你許諾成功。它只會給你掙扎、痛苦和煎熬的過程。但只要你堅持下去&#xff0c;終有一天&…

Spring Boot 實現防盜鏈

在 Spring Boot 項目中實現防盜鏈可以通過多種方式&#xff0c;下面為你介紹兩種常見的實現方法&#xff0c;分別是基于請求頭 Referer 和基于令牌&#xff08;Token&#xff09;的防盜鏈。 基于請求頭 Referer 的防盜鏈 這種方法通過檢查請求頭中的 Referer 字段&#xff0c…

悄悄話識別、 打電話識別、攀高識別三種識別算法

在攝像頭正對場景下,悄悄話識別(唇語識別)、打電話識別和攀高識別是三種典型的行為檢測技術。以下從技術原理、算法模型、應用場景及挑戰等方面進行詳細分析: 一、悄悄話識別(唇語識別) 技術原理 唇語識別通過分析嘴唇的幾何特征(形狀、開合程度、運動軌跡)和動態變化…

centos部署的openstack發布windows虛擬機

?CentOS上部署的OpenStack可以發布Windows虛擬機?。在CentOS上部署OpenStack后&#xff0c;可以通過OpenStack平臺創建和管理Windows虛擬機。以下是具體的步驟和注意事項&#xff1a; ?安裝和配置OpenStack?&#xff1a; 首先&#xff0c;確保系統滿足OpenStack的最低硬件…

【電子通識】案例:電纜的安裝方式也會影響設備的可靠性?

背景 在日常生活中&#xff0c;我們常常會忽略一些看似微不足道的細節&#xff0c;但這些細節有時卻能決定設備的壽命和安全性。比如&#xff0c;你知道嗎&#xff1f;一根電纜的布置方式&#xff0c;可能會決定你的設備是否會因為冷凝水而損壞。 今天&#xff0c;我們就來聊聊…

【Web APIs】JavaScript 操作多個元素 ④ ( 表格全選復選框案例 )

文章目錄 一、核心要點解析 - 表格全選復選框案例1、案例需求2、復選框設置3、獲取 全選復選框 和 普通復選框4、設置 全選復選框 邏輯5、設置 普通復選框 邏輯 二、完整代碼示例1、代碼示例2、執行結果 一、核心要點解析 - 表格全選復選框案例 1、案例需求 在表格中 , 設置 多…

OpenAI發布GPT-4.1系列模型——開發者可免費使用

OpenAI剛剛推出GPT-4.1模型家族&#xff0c;包含GPT-4.1、GPT-4.1 Mini和GPT-4.1 Nano三款模型。重點是——現在全部免費開放&#xff01; 雖然技術升級值得關注&#xff0c;但真正具有變革意義的是開發者能通過Cursor、Windsurf和GitHub Copilot等平臺立即免費調用這些模型。…

《重構全球貿易體系用戶指南》解讀

文章目錄 背景核心矛盾與理論框架美元的“特里芬難題”核心矛盾目標理論框架 政策工具箱的協同運作機制關稅體系的精準打擊匯率政策的混合干預安全工具的復合運用 實施路徑與全球秩序重構階段性目標 風險傳導與反制效應內部失衡加劇外部反制升級系統性風險 范式突破與理論再思考…

磁盤清理-C盤

0.采用的工具——WizTree&#xff08;一定要以管理員身份運行&#xff09; 沒有以管理員身份運行時&#xff1a; 以管理員身份運行&#xff1a;&#xff08;查出很多之前沒有查出的文件&#xff09; 1.該死的優酷&#xff01;緩存占我11個G的內存 2.C 盤 Dell 文件夾下的 SARe…

錨定“體驗驅動”,銳捷EDN讓園區網絡“以人為本”

作者 | 曾響鈴 文 | 響鈴說 傳統的網絡升級路徑&#xff0c;一如巴別塔的建造思路一般——工程師們按技術藍圖逐層堆砌&#xff0c;卻常與地面用戶的實際需求漸行漸遠&#xff0c;從而帶來了諸多體驗痛點&#xff0c;如手工配置效率低下、關鍵業務用網無法保障、網絡架構趨于…

pid_t

用最簡單的方式解釋&#xff1a; pid_t 就像是一個"專門用來裝進程號碼的盒子"。 實際本質&#xff1a; 這個盒子里面裝的是整數&#xff08;就像 int&#xff09;但給它貼了專用標簽&#xff0c;標明"只能裝進程ID" 為什么不用普通int&#xff1a; 就像…

如何處理Python爬取視頻時的反爬機制?

文章目錄 前言1. IP 封禁2. 驗證碼3. 用戶代理&#xff08;User-Agent&#xff09;檢測4. 動態內容加載5. 加密和簽名驗證 前言 在使用 Python 爬取視頻時&#xff0c;網站可能會設置多種反爬機制來阻止爬蟲&#xff0c;下面為你介紹一些常見反爬機制及對應的處理方法&#xf…

如何利用GM DC Monitor快速監控一臺網絡類設備

GM DC Monitor v2.0在網絡類設備監控的效率非常高&#xff01; 如果您需要管理運維大量的網絡類設備&#xff0c;GM DC Monitor是個不錯的選擇。 如果您具備一定的采集腳本編寫能力&#xff0c;可以在平臺的定制屬于自己的監控模板&#xff01; 1&#xff09;首先建立數據中…