Skip to content

About

轻量级 JumpServer CLI:服务器 Shell、文件管理与数据库连接。A lightweight JumpServer CLI for shells, file management, and database access.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

JumpServer CLI

Python Platform Dependencies License

简体中文 | English

基于 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-secret

JUMPSERVER_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,其中不包含令牌或临时密码。

服务器 Shell

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 \
  --compact

db-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 官方客户端。

许可证

MIT License

About

轻量级 JumpServer CLI:服务器 Shell、文件管理与数据库连接。A lightweight JumpServer CLI for shells, file management, and database access.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages