Jumpserver 简单使用

本文介绍了如何使用docker快速搭建开源跳板机Jumpserver,包括运行容器、创建用户账号、设置管理账号和系统用户、添加资产、资产授权以及测试登录。通过Jumpserver实现安全的远程服务器访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说起跳板机,现在首先被提起的一定是jumpserver,由于开源免费且功能强大,深受欢迎

出于学习和实验的目的,通过docker方式就可以简单的搭建起来

  • jumpserver/jms_all:latest 官方镜像

运行容器


docker run -d -p 8080:80 -p 2220:2222 --name jumpserver jumpserver/jms_all:latest 
03f9b2f8c74a28948a4f5c45bbbe31d2bb40a80441273a63fdf5e30c201e31c8


docker ps -a |grep jumpserver
03f9b2f8c74a        jumpserver/jms_all:latest   "entrypoint.sh"          44 seconds ago      Up 41 seconds             0.0.0.0:8080->80/tcp, 0.0.0.0:2220->2222/tcp          jumpserver


jumpserver的web页面通过http://ip:8080访问,默认账号admin,密码admin

在这里插入图片描述

添加登录jumpserver的账号

建立一个名为jack的账号,并配置密码和邮箱,邮箱用于重置密码,且加入到默认用户组default

  • 这里只是用来测试登录跳板机,账号使用密码认证,实际生产环境账号应当采用ssh公钥
    在这里插入图片描述在这里插入图片描述

添加管理账号

  • 用于推送系统用户的账号,此账号在服务器上有对应的名称的账号且具有ALL sudo权限
    在这里插入图片描述

添加系统用户账号

  • 此账号被之前的管理账号sysadmin推送
  • 此账号在服务器上有对应名称的账号和相同密码
  • 这里账号为jack,与登录jumpserver的用户账号名称相同,但密码或认证方式不同;用户账号只用于登录jumpserver,系统用户账号用于登录运维管理的服务器

在这里插入图片描述

添加资产

  • 添加被管理和需要远程登录的服务器
  • jumpserver本地到服务器网络可达且允许ssh访问
    在这里插入图片描述

资产授权

  • 为用户账号jack授权
  • 绑定的系统用户账号jack,当使用用户账号登录jumpserver后,可通过系统用户账号的jack自动登录服务器(可设置手动登录)

在这里插入图片描述

测试登录Jumpserver

通过ssh jack@10.10.33.25 -p2220登录访问



		 jack, 欢迎使用Jumpserver开源跳板机系统 

	1) 输入 ID 直接登录 或 输入部分 IP,主机名,备注 进行搜索登录(如果唯一).
	2) 输入 / + IP, 主机名 or 备注 搜索. 如: /ip
	3) 输入 p 显示您有权限的主机.
	4) 输入 g 显示您有权限的节点.
	5) 输入 g + 节点ID 显示节点下主机. 如: g1
	6) 输入 s 中/英文切换.
	7) 输入 h 帮助.
	0) 输入 r 刷新最新的机器和节点信息.
	0) 输入 q 退出.

Opt> 

输入“p”, jumpserver将显示当前账号拥有授权的服务器列表

Opt> p

ID   主机名           IP               登录用户 备注                                                                                                                                           
1    Backup_srv_33.25 10.10.33.25       [jack]                                                                                                                                                

页码: 1, 数量: 1, 总页数: 1, 总数量: 1


输入“1”,从jumpserver成功自动登录服务器

ID   主机名           IP               登录用户 备注                                                                                                                                           
1    Backup_srv_33.25 10.10.33.25       [jack]                                                                                                                                                

页码: 1, 数量: 1, 总页数: 1, 总数量: 1

Opt> 1

开始连接到 jack@Backup_srv_33.25 1.6
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-47-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Thu Jun 27 08:52:40 UTC 2019

  System load:  0.06               Processes:              181
  Usage of /:   20.2% of 48.96GB   Users logged in:        1
  Memory usage: 8%                 IP address for ens160:  10.10.33.25
  Swap usage:   0%                 IP address for docker0: 172.17.0.1

 * Ubuntu's Kubernetes 1.14 distributions can bypass Docker and use containerd
   directly, see https://bit.ly/ubuntu-containerd or try it now with

     snap install microk8s --classic

 * Canonical Livepatch is available for installation.
   - Reduce system reboots and improve kernel security. Activate at:
     https://ubuntu.com/livepatch

162 packages can be updated.
15 updates are security updates.


*** System restart required ***

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

jack@backup:~$ 
JumpServer 是一个基于 Python 的开源堡垒机解决方案,其设计和实现为开发和自动化任务提供了良好的支持[^1]。以下是关于在 JumpServer使用 Python 进行开发或集成的详细分析: ### JumpServer 的 Python 开发特性 1. **完全使用 Python 编写** JumpServer 的核心代码是使用 Python 编写的,这使得它在二次开发和功能扩展方面具有天然的优势。Python 语言的易读性和丰富的库支持,降低了开发门槛,使得开发者可以更专注于功能实现而非语法细节[^1]。 2. **支持虚拟环境和依赖管理** JumpServer 的开发环境推荐使用虚拟环境(如 `virtualenv`),以隔离不同项目的依赖。通过 `pip` 安装 Flask、Flask-CORS 等依赖包,可以轻松构建一个独立的开发环境,确保项目的可移植性和稳定性[^2]。 3. **集成了 Ansible 自动化工具** JumpServer 内置了对 Ansible 的支持,允许用户通过 Python 脚本调用 Ansible 模块执行批量命令、配置管理、任务编排等自动化操作。这种集成使得 JumpServer 成为一个强大的自动化运维平台[^1]。 4. **支持 Web Terminal 和 API 接口** JumpServer 提供了 Web Terminal 功能,用户可以通过浏览器直接与远程服务器进行交互。此外,JumpServer 还提供了 RESTful API 接口,开发者可以通过 Python 编写脚本调用这些 API 实现自动化操作,如用户管理、权限分配、任务执行等[^1]。 5. **Luna 组件的打包与扩展** Luna 是 JumpServer 的前端组件之一,开发者可以使用 Python 构建和打包 Luna 组件。通过 `nohup python3 Usermock.py &` 命令,可以在后台运行自定义的 Python 脚本,确保即使关闭终端窗口,程序也能继续执行。 6. **审计与日志功能** JumpServer 提供了详细的审计日志功能,开发者可以通过 Python 脚本解析和分析这些日志,进一步实现自动化监控、告警通知等功能。 ### JumpServer 的 Python 集成示例 以下是一个简单的 Python 脚本示例,展示了如何通过 JumpServer 的 API 接口执行远程命令: ```python import requests # JumpServer API 地址 api_url = "http://jumpserver.example.com/api/v1/assets/cmd/" # API 认证信息 headers = { "Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json" } # 执行命令的参数 data = { "command": "uptime", "target": "all" } # 发送请求 response = requests.post(api_url, json=data, headers=headers) # 输出结果 print(response.json()) ``` ### 总结 JumpServer 的 Python 开发特性使其成为一个高度可定制和可扩展的堡垒机平台。无论是二次开发、自动化运维,还是与其他系统集成,Python 都为其提供了强大的支持。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值