如何在 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.mzph.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;首先建立数据中…