keybox 搭建

keybox是基于web的ssh终端管理软件,在生产和测试环境中,服务器一般放在内网中,想要通过外网远程连接就需要先连接有外网的代理服务器,然后再ssh内网的机器,有了keybox就免去其中的麻烦。

一、安装

1、安装java环境,官方建议使用1.8以上的Java JDK

$ yum localinstall -y jdk-8u45-linux-x64.rpm

# jdk路径
$ ls /usr/java/jdk1.8.0_45/ 
bin  COPYRIGHT  db  include  javafx-src.zip  jre  lib  LICENSE  man  README.html  release  src.zip  THIRDPARTYLICENSEREADME-JAVAFX.txt  THIRDPARTYLICENSEREADME.txt
$ vim /etc/profile.d/java_env.sh
  1 export JAVA_HOME=/usr/java/jdk1.8.0_45
  2 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
$ exec bash

# 查看java的版本
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

2、安装keybox,直接到github上下载keybox压缩包:https://github.com/skavanagh/KeyBox/releases/

$ tar xf keybox-jetty-v2.89_00.tar.gz -C /usr/local
$ cd /usr/local/
$ mv KeyBox-jetty keybox
$ cd keybox && ls 
jetty  LICENSE.md  README.md  startKeyBox.bat  startKeyBox.sh

二、启动keybox

# 初始化并启动
$ ./startKeyBox.sh 
2017-05-10 14:13:02.374:INFO::main: Logging initialized @813ms to org.eclipse.jetty.util.log.StdErrLog
2017-05-10 14:13:02.764:INFO:oejs.Server:main: jetty-9.4.2.v20170220
2017-05-10 14:13:02.812:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///tmp/KeyBox-jetty/jetty/webapps/] at interval 1
2017-05-10 14:13:05.084:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=1866ms
2017-05-10 14:13:05.478:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2017-05-10 14:13:05.478:INFO:oejs.session:main: No SessionScavenger set, using defaults
2017-05-10 14:13:05.483:INFO:oejs.session:main: Scavenging every 660000ms

# 新建数据库密码
Please enter database password: 
Please confirm database password: 
Setting KeyBox SSH public/private key pair
Finger print: 12:70:18:ad:01:45:f5:dd:e2:ac:44:d4:e3:8e:65:d9
KeyBox Generated Global Public Key:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfC1IZiTNKgSZZtTHiL8Y8fWTfPlkA/3CUahUs3bp0oZStJNYPAAu6mUAYkDjs6FCoASqrC/WwSVamu504ZUHBID/tKJ1gV4bvjdrlkUDIo3tyhmTl2DpwAPYhaHh+NSvhVyyCFSmicVONhdll2m74p/M7jU/V8jKygNM90FMR9U
GdNa7K4VpK1MW6XFax5LlskMVnN93tfwfUXCgWg18/ShbuGF6JLJibMnBI8sVsS3/PTjI/tp+MtvYLqzN3G5BHfj31lSIIk5mMcIuLK0u6D8N8ITt3+OvNvNNIeUD2A9op1swb9v8Y92RQ9WnVPQnIeHgRVZJnl3sLyr47ERsb [email protected]_key
2017-05-10 14:13:13.610:INFO:oejsh.ContextHandler:main: Started [email protected]{/,file:///tmp/KeyBox-jetty/jetty/keybox/,AVAILABLE}{/tmp/KeyBox-jetty/jetty/keybox}
2017-05-10 14:13:13.628:INFO:oejus.SslContextFactory:main: [email protected](jetty,h=[],w=[]) for [email protected](file:///tmp/KeyBox-jetty/jetty/etc/keystore,file:///tmp/KeyBox-jetty/jetty/etc/keyst
ore)2017-05-10 14:13:13.660:INFO:oejs.AbstractConnector:main: Started [email protected]{SSL,[ssl, http/1.1]}{0.0.0.0:8443}
2017-05-10 14:13:13.660:INFO:oejs.Server:main: Started @12100ms

# 查看8443端口
$ ss -tnl | grep 8443
LISTEN     0      50                       :::8443                    :::* 

# keybox启动脚本的使用方法
$ /usr/local/keybox/jetty/bin/jetty.sh 
Usage: jetty.sh [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ]

三、访问keybox

1、使用浏览器打开

2、输入默认的用户名admin,密码changeme登录

四、新建用户并配置免密钥ssh访问

本次使用的是通过脚本配合ansible来新建和配置

1、安装ansible并配置

$ yum install -y ansible

$ vim /etc/ansible/hosts
# 示例
[proxy]
192.168.1.201

[web]
192.168.1.202
192.168.1.203

[mysql]
192.168.1.204
192.168.1.205

2、配置root与ansible配置文件中的主机免密钥ssh访问,这里就不多赘述了,通过ssh-keygen与ssh-copy-id即可完成

3、在多台主机上新建用户密码并免密钥ssh登录

# 新建用户
$ vim user_add.sh
for name in test{1..5}
do 
ansible all -m user -a "name=$name generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa state=present group=java"
done
$ ./user_add.sh

# 配置密码
$ vim passwd_add.sh
for i in test{1..5}
do
ansible all -m shell -a "echo ‘123456‘ | passwd --stdin $i"
done
$ ./passwd_add.sh

# 免密钥ssh配置
$ yum install -y expect
$ vim ssh_add.sh
for user in test{1..5}
do
pass=‘123456‘
    for ip in `cat /etc/ansible/hosts | grep "^[^([|#)].*"`; do 

/usr/bin/expect << EOF
set timeout 300
spawn ssh-copy-id -i /home/$user/.ssh/id_rsa.pub [email protected]$ip
expect {
        "(yes/no)" {send "yes\r"; exp_continue}
        "password:" {send "$pass\r"}
}
expect eof 
EOF

    done
done
$ ./ssh_add.sh

五、将相关用户与主机信息写入keybox数据库

1、将/usr/local/keybox/jetty/中的keybox文件夹复制到桌面

2、下载H2数据库console(keybox使用的是H2数据库):http://www.h2database.com/html/quickstart.html

3、连接数据库

其中JDBC 1、URL:jdbc:h2:file:C:\Users\Administrator\Desktop\keybox\WEB-INF\classes\keydb\keybox;CIPHER=AES;

2、用户名为默认的:keybox

3、密码格式为"filepassword空格userpassword":filepwd 初始化时新建的密码

4、进入数据库

5、新建数据

主要需要新建数据的表有5个,分别是

·PROFILES:用户空间 示例:INSERT INTO PROFILES (NM,DESC) VALUES (‘test1‘,‘test1 space‘);

·SYSTEM:用户和hosts的ssh信息 示例:INSERT INTO SYSTEM(DISPLAY_NM,USER,HOST,PORT,AUTHORIZED_KEYS,STATUS_CD) values (‘proxy‘,‘test1‘,‘192.168.1.201‘,22,‘/home/test1/.ssh/authorized_keys‘,‘SUCCESS‘);

·SYSTEM_MAP:PROFILE和SYSTEM通过ID进行关联 示例:INSERT INTO SYSTEM_MAP(PROFILE_ID,SYSTEM_ID) VALUES (1,1);

·USERS:用户信息,默认已有admin 示例:INSERT INTO USERS (USERNAME,USER_TYPE) VALUES (‘test5‘,‘A‘);

·USER_MAP:PROFILE和USER通过ID进行关联 示例:INSERT INTO USER_MAP (USER_ID,PROFILE_ID) VALUES (2,1);

六、配置数据并访问

使用admin用户登录,配置test1-5的密码,然后使用test1-5中的用户登录keybox后就可以使用了。

时间: 2024-10-10 22:14:15

keybox 搭建的相关文章

如何使用GNS3和Cisco IOU搭建路由交换实验-IOU篇

前面介绍了GNS3的概念,安装,配置和使用,本篇将介绍怎么利用GNS3配置IOU从而实现使用GNS3和Cisco IOU搭建路由交换实验. 由于本篇篇幅较长,所以先过一下大纲: 1. IOU模拟环境介绍 2. IOU软件环境的准备 3. VMware虚拟机的安装.导入和配置 4. IOU镜像的上传 5. GNS3的配置 6. IOU模拟环境的实现 IOU模拟环境介绍 IOU即IOS running in Unix,最初是由思科内部人员开发来测试IOS的平台,后来流传到互联网经网友改进有了后来的W

一、环境搭建

1 更新到最新版本的pip(这是安装python扩展包的一个插件)命令如下: python -m pip install --upgrade pip 2 使用pip安装virtualenv,命令 pip install virtualenv  如果要指定版本号,pip install virtualenv==15.0.1(安装虚拟环境) 3 创建django虚拟环境,命令 virtualenv django_basic_venv 4 使用虚拟环境 需要进入到安装目录的Scripts文件夹下,运行

cocos Creator js 房卡麻将/血战/H5四川麻将源码下载搭建

房卡麻将/血战/H5四川麻将 源码 支持iOS/Android/H5 完整源码 1.基于NODEJS+MYSQL的服务器,成熟的技术方案,高效稳定,且方便Windows开发,Linux平台布署,节约服务器运转成本. 2.采用最新版本的cocos引擎,cocos creator开发,可快速的进行界面调整.且能够快速地发布iOS,Android版本. 3.如需H5版本,只需针对H5平台进行资源优化即可. 4.成熟可靠的房卡式设计,能满足大部分用户使用体验. 5.产品经过大量测试,可以运转稳定. 测试

Vue.js系列之项目搭建(vue2.0 + vue-cli + webpack )

1.安装node node.js环境(npm包管理器) cnpm npm的淘宝镜像 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了(傻瓜式安装).安装完成之后,打开命令行工具,输入 node -v,如果出现相应的版本号,则说明安装成功. npm包管理器,是集成在node中的,所以,直接输入 npm -v就会显示出npm的版本信息. 2.安装cnpm 在命令行中输入 npm install -g cnpm --registry=http://registr

Vue.js项目模板搭建

前言 从今年(2017年)年初起,我们团队开始引入「Vue.js」开发移动端的产品.作为团队的领头人,我的首要任务就是设计 整体的架构 .一个良好的架构必定是具备丰富的开发经验后才能搭建出来的.虽然我有多年的前端开发经验,但就「Vue.js」来说,仍然是个新手.所幸「Vue.js」有一个配套工具「Vue-CLI」,它提供了一些比较成熟的项目模板,很大程度上降低了上手的难度.然而,很多具体的问题还是要自己思考和解决的. 项目划分 我们公司的H5产品大部分是嵌套在手机客户端里面的页面.每个项目的功能

部署AlwaysOn第一步:搭建Windows服务器故障转移集群

在Windows Server 2012 R2 DataCenter 环境中搭建集群之前,首先要对Windows服务器故障转移集群(Windows Server Failover Cluster,简称WSFC)有基本的了解.WSFC必须部署在域管理环境中,由多台服务器组成,每台服务器称作一个"结点"(Node),每个结点上都运行了Windows服务器故障转移集群服务,整个集群系统允许部分结点掉线.故障或损坏而不影响整个系统的正常运作.集群自动检测结点的健康状态,一旦活跃结点发生异常,变

win7搭建局域网时间服务器

近日,本人想在局域网内通过普通的windows 7 PC搭建一台NTP服务器,可看似简单的配置却给我捣腾了了半天.初期,参考了互联网的上相关的配置文档,可网络设备就是死活不同步NTP服务器的时间.实在没办法,只有通过来抓包分析了,经过一番研究后,终于找到问题,现将这个文档与大家分享: 通过windows系统为局域网搭建NTP服务器,为局域网内网络设备提供时间服务,经过测试,使用于windows xp.windows 2003.windows 7. 1.启用 NTPServer.为此,请按照下列步

搭建连接MySql的三层架构的ASP.NetCore2.0的WebApi

里我们用三层架构搭建一个连接MySql的ASP.netCore模板的WebApi项目 首先添加WebApi项目(ASP.NetCore版本) 右键解决方案>新建项目> 选择Web>ASP.NET Core Web应用程序(.NET Core) 选择Web API 此时的目录结构: 添加实体层Entity 右键添加>新建项目>.Net Core类库 添加后的目录结构 BaseEntity: using System; using System.Collections.Gener

MongoDB 搭建分片集群

在MongoDB(版本 3.2.9)中,分片是指将collection分散存储到不同的Server中,每个Server只存储collection的一部分,服务分片的所有服务器组成分片集群.分片集群(Sharded Clustered)的服务器分为三中类型:Router(mongos),Config Server 和 Shard(Replica Set 或 Standalone mongod).使用分片集群,不需要使用强大的计算机,就能存储更多的数据,处理更大的负载.分布式数据库系统的设计目的是: