Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
sshelf — SSH 主机的快速终端界面:两次按键即可模糊搜索并连接,双窗格 SFTP 文件传输,以及后台端口转发。自带主机数据库并生成 ssh 命令——绝不修改 ~/.ssh/config。 | Kitploit
工具/GitHubGitHub/max-rh/sshelf
通用工具网络安全实用工具与框架身份验证远程访问工具
GitHubmax-rh/sshelf

sshelf

SSH 主机的快速终端界面:两次按键即可模糊搜索并连接,双窗格 SFTP 文件传输,以及后台端口转发。自带主机数据库并生成 ssh 命令——绝不修改 ~/.ssh/config。

查看仓库
66893天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

sshelf

模糊搜索你的 SSH 主机,两次按键即可连接。

sshelf 维护自己的主机列表,为你构建 ssh 命令,然后功成身退。它将终端交给真正的 OpenSSH,绝不触碰 ~/.ssh/config。

crates.io CI docs built with Ratatui MSRV license

sshelf:输入几个字母,它就已备好 ssh 命令

安装

macOS 和 Linux,x86_64 和 arm64。预构建包无需 Rust 工具链。运行时 sshelf 需要 OpenSSH 8.4+,密码自动填充功能依赖于此。

Homebrew(macOS 或 Linux):

root@kitploit:~
brew install max-rh/tap/sshelf

Shell 安装脚本(预构建二进制,自动选择平台):

root@kitploit:~
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-rh/sshelf/releases/latest/download/sshelf-installer.sh | sh
更多选项(Debian/Ubuntu · Fedora/RHEL · Gentoo · cargo)

Debian/Ubuntu:从最新发布获取 .deb 包,然后执行 sudo apt install ./sshelf_*_amd64.deb(或 *_arm64.deb)。

Fedora / RHEL / Rocky / openSUSE:从最新发布获取 .rpm 包(静态构建,适用于任何 RPM 发行版),然后执行 sudo dnf install ./sshelf-*.x86_64.rpm(或 .aarch64.rpm)。

Gentoo:社区维护的 overlay(非官方,感谢 @masterwolf-git)。运行 eselect repository enable masterwolf && emerge --sync && emerge --ask app-admin/sshelf。

Cargo(来自 crates.io;需要 Rust 1.88+): cargo install sshelf。

每个包都附带 shell 标签补全。安装后打开一个新的 shell。在 Linux 上,密钥使用纯 Rust 的 Secret Service 后端(无 libdbus/OpenSSL 构建依赖)。

完整详情和补全配置:安装指南。

我为什么构建这个

我运行着几十台机器(一个家庭实验室、一些 VPS、几台位于堡垒机后面的机器),我经常凭记忆输入 ssh -J bastion -i ~/.ssh/some-key -p 2222 user@host,或者在 shell 历史中搜索它。我试过的每个 SSH 管理器要么想接管 ~/.ssh/config,要么想给我一个账户并通过别人的服务器同步我的主机。这两者我都不想要。我想要一个启动器,它维护自己的列表、构建命令、然后功成身退。还要一个地方来保存少数无法使用密钥的主机的密码,且绝不写入文件。所以我构建了它。

你能得到什么

模糊启动器

输入即可过滤。Enter 连接。你最常用的主机会自动浮到顶部(frecency:使用次数,按最近使用时间衰减),tag:prod / site:homelab 可进一步缩小列表范围。Ctrl-y 复制它构建的命令而不是运行它。在 shell 中,sshelf prod-web 按名称连接,sshelf - 重新连接到上次的主机,两者都无需打开 TUI。

sshelf 启动器在你输入时过滤三个主机

它 exec() 进入你的 ssh

sshelf 根据主机记录构建 argv,拆除自己的 UI,然后用自身替换为 OpenSSH。你和会话之间没有任何包装层:真正的 TTY、你的 ssh、你无配置的 flags。会话结束时你回到 shell,而不是回到菜单。它运行的命令正是 Ctrl-y 显示给你的那条。 命令是如何构建的。

双栏文件传输

Ctrl-t 在左侧打开你的文件,右侧打开主机的文件,通过单个已认证连接。Space 标记,Ctrl-a 标记过滤器显示的所有内容,Ctrl-s 将整个集合发送到任一方向,F7 创建目录。目标已存在的同名文件会被跳过,绝不覆盖。

双栏传输界面,两个条目已标记

后台端口转发

Ctrl-f 打开 Local、Remote 或 SOCKS 隧道,在你退出 sshelf 后以及关闭终端后仍持续运行。F4 列出所有主机上的所有隧道,并停止你选中的那一个。它们通过 pid 跟踪,并与实际运行的进程进行核对,因此进程死亡后不会残留在列表中。无守护进程,无监督程序。

转发管理器列出两条活动隧道

tmux 模式

设置 tmux = "window" 或 "pane",Enter 会在新的 tmux 窗口(以主机命名)或新窗格中打开主机,而不是替换 sshelf。结束会话后,选择器仍在那里,仍在运行。

Enter 在新的 tmux 窗口中打开主机;sshelf 持续运行

站点和标签

F3 管理站点:站点将主机分组,并可携带共享的堡垒机、用户、端口和密钥,其成员在连接时继承这些设置,仅填充主机未设置的字段。标签是用于过滤的自由格式标签。两者都会显示在列表中,继承的堡垒机会显示在 sshelf 构建的命令中。

站点管理器,包含三个站点及其共享默认值

无需 sshpass 的密码

对于无法使用密钥的主机,sshelf 将密码存储在操作系统钥匙串中(或在无头机器上使用 age 加密的保险库),并在 ssh 询问时通过 SSH_ASKPASS 提供。它只响应具有真实密码或口令提示形状的提示,因此服务器无法用相似文本钓鱼获取密钥。密码绝不在文件中、绝不在 ps 中、绝不在命令行上。同时需要验证码的主机在连接开始前会收到提示。密码、密钥和 2FA · 安全。

添加主机表单的认证部分,选择密钥

导出到 ssh_config

sshelf export 写入一个自己的 ssh_config 片段,并给你一行 Include 行,由你自己粘贴到 ~/.ssh/config 中。之后,普通的 ssh、scp、rsync、git 以及任何读取 SSH 配置的程序(VS Code Remote-SSH、JetBrains Gateway)都能按名称解析你的 sshelf 主机,包括堡垒机。文件在你的主机变化时自动刷新。sshelf 仍然不会在 ~/.ssh 下写入任何内容。

sshelf export 写入 ssh_config 片段,以及片段本身

导入你已有的内容

sshelf import 读取 ~/.ssh/config,严格只读,并复制它能建模的主机。sshelf import --tailscale 运行你自己的 tailscale CLI,将你的 tailnet 变成可搜索的主机,包含 MagicDNS 名称、作为站点的 tailnet 以及作为标签的 ACL 标签。两者都是只增操作,因此重复运行始终安全,且除非你主动要求,否则都不会发生。

sshelf doctor

一条命令用于排查问题。它检查你的 OpenSSH 版本、密钥后端是否真的能打开、hosts.toml 是否能解析、指向不存在站点的主机、缺失的 agent socket,以及已漂移的导出。它会为每项指出修复方法。只读,任何一项失败则退出码为 1,且绝不联系主机。

sshelf doctor 列出其检查项,其中一项为警告

对比

2026 年 9 月根据各项目自己的 README(Termius 则根据其网站)编译。单元格显示"未说明"表示该项目自己的文档未提及。

sshelf 没有仪表盘、没有容器管理、没有团队共享、也没有 Windows 构建。前三项是刻意选择,PRIVACY.md 解释了原因:每一项都意味着 sshelf 要持有你的某些东西,或自行与某些东西通信。

它永远不会做的事

  • 无遥测。无分析、无崩溃报告、无更新检查。
  • 无账户、无云、无同步服务器。无需注册任何东西。
  • 不持有令牌。sshelf 从不存储云或 API 凭据。
  • 无自身的网络调用。唯一的流量是你要求的 SSH 会话。
  • 从不编辑 ~/.ssh/config,也从不写入 ~/.ssh 下的任何内容。
  • hosts.toml 中无密钥。该文件可以安全提交和共享。
  • 无 Electron。单个二进制,约四兆字节。

PRIVACY.md 说明它读取、写入、运行和发送的内容。 SECURITY.md 是存储密钥的威胁模型。

头五分钟

root@kitploit:~
sshelf                        # 启动 TUI(Ctrl-a 添加你的第一个主机)
sshelf import --dry-run       # 预览从 ~/.ssh/config 的只读导入
sshelf import                 # ...执行导入
sshelf import --tailscale     # ...或导入你的整个 Tailscale tailnet
sshelf prod-web               # 直接连接到已保存的主机(跳过 TUI)
sshelf -                      # 重新连接到最近使用的主机
sshelf list tag:prod --json   # 可脚本化的列表(字段 + ssh 命令)
sshelf print-command db       # 打印 ssh 命令而不是运行它
sshelf export                 # Include 文件,让普通 ssh/scp/VS Code 看到你的主机
sshelf doctor                 # 有问题?检查设置并获知修复方法

在 TUI 中:输入过滤(加上 tag:NAME / site:NAME),Enter 连接。 F1 显示所有按键。

文档

用户指南 涵盖所有内容: 快速入门 · CLI 参考 · 配置 · FAQ · sshelf doctor。 还有针对各功能的页面:文件传输、 端口转发、 站点与标签、 密码与 2FA 和 SSH 配置导出。 架构和设计决策位于 docs/,还有一个面向机器的 llms.txt。

问题与想法

在 GitHub Discussions 中提问、建议功能或展示你用它所构建的内容。欢迎贡献。从 CONTRIBUTING.md 开始。

支持

如果 sshelf 对你有用,欢迎 Bitcoin 打赏(完全自愿):

Donate BTC

Bitcoin: bc1qcdeyhpwq76u97dhymx876n49uq85z4y3ccrpje

许可证

双许可,任选其一:MIT 或 Apache-2.0(Rust 生态惯例)。

下载工具
sshelfpurpleomnysshVoltiusTermius
运行环境终端(TUI)终端(TUI)终端(TUI)+ 桌面应用桌面应用(Tauri)桌面 + 移动应用
编辑 ~/.ssh/config从不是,就地编辑否,启动时读取不适用(自有存储)不适用(自有存储)
需要账户否否否实时同步需要是
持有其他服务的令牌否是,每个云提供商一个否是,用于同步未说明
自身的网络调用无云提供商同步主机指标轮询同步、更新、主机指标同步
密钥保管你的操作系统钥匙串 / age 保险库钥匙串 + 密码管理器未说明其 E2EE 保险库其加密保险库
连接方式exec() 进入你的 ssh运行你的 ssh 命令内置终端内置终端内置终端
端口转发是,退出后仍存活是,实时监控未说明是是
文件传输双栏 SFTP分栏双栏 SFTP双栏,拖放SFTP
容器 / 指标仪表盘否是是是未说明
团队共享否否否付费层级付费层级
平台macOS、LinuxmacOS、LinuxmacOS、Linux、Windows、TermuxWindows、macOS、LinuxmacOS、Windows、Linux、iOS、Android
许可证MIT / Apache-2.0MITApache-2.0AGPL-3.0专有