使用这款开源工具管理您的 SSH 连接

这个开源项目使连接到任何 SSH 会话变得快速、无缝,并且非常轻松。
98 位读者喜欢这篇文章。
Top 5 Linux pain points in 2017

Internet Archive Book Images。由 Opensource.com 修改。CC BY-SA 4.0

OpenSSH 被广泛使用,但没有广为人知的连接管理器,所以我开发了 ncurses SSH 连接管理器 (nccm) 来填补流程中的这个重要空白。nccm 是一个简单的 SSH 连接管理器,具有超便携的终端界面(正如项目名称所示,用 ncurses 编写)。最重要的是,它非常容易使用。使用 nccm,您可以以最小的干扰和最少的击键次数连接到您选择的 SSH 会话。

安装 nccm

最快的入门方法是从其 Git 仓库 克隆项目

$ git clone https://github.com/flyingrhinonz/nccm nccm.git

nccm.git/nccm 目录中,有两个文件——nccm 本身和一个 nccm.yml 配置文件。

首先,将 nccm 脚本复制到 /usr/local/bin/ 并授予其可执行权限。您可以使用 install 命令一步完成此操作

$ sudo install -m755 nccm
–target-directory /usr/local/bin

nccm.yml 文件可以复制到以下任何一个位置,并从找到的第一个位置加载

  • ~/.config/nccm/nccm.yml
  • ~/.nccm.yml
  • ~/nccm.yml
  • /etc/nccm.yml

nccm 命令需要您的机器上安装 Python 3,这在大多数 Linux 系统上应该不是问题。大多数 Python 库依赖项已经作为 Python 3 的一部分存在;但是,您必须安装一些 YAML 依赖项和实用程序。

如果您没有安装 pip,您可以使用您的软件包管理器安装它。在您安装的同时,安装 yamllint 应用程序以帮助您验证 nccm.yml 文件。

在 Debian 或类似系统上,使用 apt

$ sudo apt install python3-pip yamllint

在 Fedora 或类似系统上,使用 dnf

$ sudo dnf install python3-pip yamllint

您还需要 PyYAML,您可以使用 pip 命令安装它

$ pip3 install --user PyYAML

使用 nccm

在开始之前,编辑 nccm.yml 文件并添加您的 SSH 配置。YAML 的格式很容易,文件中提供了示例。只需遵循结构——在行的开头提供连接名称,配置项缩进两个空格。不要忘记冒号——这些是 YAML 语言的一部分。

不必担心以任何特定方式排序您的 SSH 会话块,因为 nccm 在程序中为您提供“排序方式”选项。

完成编辑后,使用 yamllint 检查您的工作

$ yamllint ~/.config/nccm/nccm.yml

如果没有返回错误,那么您已正确格式化文件,可以安全地继续。

如果 nccm 可以 从您的路径访问 并且是可执行的,那么键入 nccm 就是启动 TUI(终端用户界面)所需的全部操作。如果您看到 Python 3 异常,请检查您是否满足了依赖项。任何异常都应提及任何缺少的软件包。

只要您使用 YAML 配置文件而不更改 nccm_config_control mode,那么您可以使用这些键盘控件

  • 向上/向下箭头 - 以传统方式移动标记
  • Home/End - 将标记跳转到列表的第一个/最后一个条目
  • PgUp/PgDn - 在列表中向上/向下翻页
  • 向左/向右箭头 - 水平滚动列表
  • TAB - 在文本框之间移动光标
  • Enter - 连接到选定的条目
  • Ctrl-h - 显示此帮助菜单
  • Ctrl-q 或 Ctrl-c - 退出程序
  • F1-F5 或 !@#$% - 按相应的列 (1-5) 排序

使用 F1 到 F5 键按第 1 到 5 列排序。如果您的桌面捕获 F 键输入,您可以改为按 “Conn” 文本框中的 !@#$% 进行排序。显示屏显示 4 个可见列,但我们将用户名和服务器地址视为单独的列以进行排序,从而为我们提供 5 个排序控件。您可以通过再次按下相同的“排序”键来反转顺序。可以通过在突出显示的行上按 Enter 来建立连接。

nccm screenshot terminal view

在 “Filter” 文本框中键入文本会使用输入的所有内容之间的 “and” 函数来过滤输出。这是不区分大小写的,空格分隔条目。“Conn” 文本框也是如此,但在此处按 Enter 会连接到该特定条目编号。

还有一些更有趣的功能有待发现,例如焦点模式,但我将把探索细节留给您。有关更多详细信息,请参阅项目页面或内置帮助。

config YAML 文件有很好的文档记录,因此您将知道如何编辑设置以使 nccm 最适合您。nccm 程序也进行了高度注释,因此您可能希望 fork 或 mod 它以添加更多功能。欢迎提交 pull 请求!

使用 nccm 轻松进行 SSH 连接

我希望这个程序能为您提供良好的服务,并且对您和我一样有用。感谢您成为开源社区的一份子,请接受 nccm 作为我对持续努力实现无缝、轻松和高效计算体验的贡献。

接下来阅读什么
标签
User profile image.
红帽认证架构师。

3 条评论

那么卖点是什么?为什么要使用一个需要一堆额外 YAML 代码的工具,而不是直接使用 .ssh/config 文件?

过滤。
当您有数百或数千个 ssh 服务器要管理时,这会让生活变得轻松得多。
过去我也使用 /etc/hosts 文件和 ssh,但是当您的连接数量像管理员的情况一样增加时,这个工具就变得有用了。

回复 作者:Daniel Ziltener (未验证)

我肯定会试用一下。感谢您为此付出的努力!

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.