基于 JumpServer API Key 的轻量级命令行客户端,支持服务器 Shell、文件管理、数据库临时凭证和本地数据库客户端连接。
当前针对 JumpServer v2.25.x 开发。其他版本可能可用,但 API 和文件管理路径可能存在差异。
- 白色终端交互菜单,支持上下键选择
- 动态读取当前账号有权访问的服务器和数据库
- 通过浏览器或 WebSocket 打开服务器 Shell
- 网页文件管理与终端 SFTP
- 启动本机
mysql/mariadb,自动填写一次性密码 - 仅显示数据库临时账号、密码和连接命令
- 保存默认操作偏好,不保存临时密码
setup配置向导与doctor环境检查
- Python 3.11+
- macOS 或 Linux
- 有效的 JumpServer 账号、Access Key 和资产权限
- 可选:
mysql或mariadb客户端 - 可选:OpenSSH
sftp客户端
Python 部分仅使用标准库,不需要安装第三方包。
git clone https://github.com/QiliChen/jumpserver-cli.git
cd jumpserver-cli
./install.sh安装程序会检查 Python、安装 jms 命令,并在首次安装时启动配置向导。
jms doctor
jms如果终端提示找不到 jms,请将下面一行加入 ~/.zshrc 或 ~/.bashrc:
export PATH="$HOME/.local/bin:$PATH"首次安装会执行 jms setup,需要填写:
JUMPSERVER_BASE_URL=https://jumpserver.example.com
JUMPSERVER_ACCESS_KEY_ID=your-access-key-id
JUMPSERVER_ACCESS_KEY_SECRET=your-access-key-secretJUMPSERVER_BASE_URL 只填写协议和域名,不要包含 /luna/ 或 login_to 参数。
个人配置默认保存在:
~/.config/jumpserver-cli/.env
文件权限自动设置为 600。重新配置:
jms setup常用可选变量:
| 变量 | 默认值 | 用途 |
|---|---|---|
JUMPSERVER_SSH_HOST |
JumpServer 域名 | SFTP 代理主机 |
JUMPSERVER_SSH_PORT |
2222 |
SFTP 代理端口 |
JUMPSERVER_MYSQL_HOST |
JumpServer 域名 | 数据库代理主机 |
JUMPSERVER_MYSQL_PORT |
33060 |
数据库代理端口 |
JUMPSERVER_ORG_ID |
Default 组织 | JumpServer 组织 ID |
JUMPSERVER_TIMEOUT_SECONDS |
20 |
API 请求超时 |
JUMPSERVER_ENV_FILE |
XDG 配置目录 | 自定义 .env 路径 |
环境变量优先于 .env。
jms主菜单提供服务器、数据库和默认操作设置。第一次运行时,服务器和数据库操作均为“每次询问”。
操作偏好保存在 ~/.config/jumpserver-cli/settings.json,其中不包含令牌或临时密码。
jms shell --asset-name example-server执行命令后退出:
jms shell \
--asset-name example-server \
--exec 'whoami; hostname'交互连接建立期间(包括等待目标服务器出现 Shell 提示符)可按 q、
Esc 或 Ctrl-C 取消。会话结束后,交互菜单会保留当前终端内容,
确认后再返回主菜单。
服务器菜单提供:
- 网页文件管理:在默认浏览器新标签中打开 JumpServer 文件管理,使用浏览器现有登录态
- 终端 SFTP:使用一次性连接令牌启动本机
sftp
如果 2222 端口不可达,请使用网页文件管理。
数据库菜单提供:
- 启动数据库客户端:启动本机
mysql/mariadb,自动填写一次性密码 - 显示账号密码:打印代理地址、数据库名、临时账号、密码和连接命令
临时密码只存在于当前进程或终端输出,不会写入配置文件。
# 查看授权服务器
jms assets --compact
# 查看授权数据库
jms databases --compact
# 查看数据库临时连接信息
jms db-info \
--application-name example-mysql \
--reveal-secret \
--compactdb-info --reveal-secret 会输出临时密码,请勿将输出写入日志。
jms doctor检查 Python、配置权限、API 认证、本机客户端以及 SFTP/数据库代理端口。FAIL 表示必须修复,WARN 表示对应的可选功能不可用。
升级:
git pull
./install.sh重复安装不会覆盖个人配置。
卸载并保留配置:
./uninstall.sh同时删除个人配置和偏好:
./uninstall.sh --purge- 不要提交
.env或真实 Access Key - 不要在 Issue、日志或截图中公开令牌和临时密码
- 每位用户应使用自己的 Access Key,以保留正确的授权与审计记录
- 建议使用 HTTPS 部署 JumpServer
- 如果令牌已经泄露,请立即在 JumpServer 中撤销并重新生成
欢迎提交 Issue 和 Pull Request。提交前请确保不包含内部域名、资产名称、IP、账号或密钥。
JumpServer 是 jumpserver/jumpserver 提供的独立开源项目,本仓库不是 JumpServer 官方客户端。