【CSDN开源夏令营】 基于Web的SSH客户端,实现跨平台的云服务管理(二)开发环境搭建
- 第一步:你需要一个Linux的操作系统(我使用的是64位centOS 6.3)
- 第二步:安装SSH客户端(我使用的是Putty)
)- 第三步:安装必要的开发依赖
1.安装依赖包
# yum install -y python python-pip gcc python-devel setuptool python-pam openssl openssl-devel wget git make gcc-c++ patch pam_radius dtach2.安装nodejs
# wget http://nodejs.org/dist/v0.8.7/node-v0.8.7.tar.gz2.2解压文件
# tar xvf node-v0.8.7.tar.gz2.3进入解压目录
# cd node-v0.8.72.4检查所需要配置(如果前面依赖包都安了的话可以省略)
# ./configure2.5进行安装:
# make
# make install
2.6检查是否成功安装,输入命令:
# node -v如果安装成功会输出相应版本号,如:
v0.8.7
3部署tty.js到服务器(github源代码:https://github.com/chjj/tty.js)
# npm install -g tty.js3.2打开tty目录的lib# cd usr/local/lib/node_modules/tty.js/lib3.3在该目录下用vi新建一个test.js# vi test.js3.3.1粘贴以下命令到test.jsvar tty = require('tty.js');
var app = tty.createServer({
shell: 'bash',
users: {
foo: 'bar'
},
port: 8000
});
app.get('/foo', function(req, res, next) {
res.send('bar');
});
app.listen();3.3.2按esc退出insert模式输入:wq保存文件# node tty.js如果部署成功服务会部署在本地端口8000上
4.部署gateone到服务器(github源代码:https://github.com/liftoff/GateOne)
# wget http://mirrors.ispros.com.bd/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm4.2用pip安装软件# pip install tornado pyopenssl kerberos# wget https://pypi.python.org/packages/source/t/tornado/tornado-2.4.1.tar.gz
# tar -zxf tornado-2.4.1.tar.gz
# cd tornado-2.4.1
# python setup.py build
# sudo python setup.py install4.4安装Imaging # wget http://effbot.org/media/downloa# ds/Imaging-1.1.7.tar.gz
# tar -zxvf Imaging-1.1.7.tar.gz
# vcd Imaging-1.1.7
# python setup.py install4.5.安装ordereddict # wget https://pypi.python.org/packages/source/o/ordereddict/ordereddict-1.1.tar.gz
# tar -zxvf ordereddict-1.1.tar.gz
# cd ordereddict-1.1
# python setup.py install4.6部署gateone# wget http://cloud.github.com/downloads/liftoff/GateOne/gateone-1.1-1.noarch.rpm
# rpm -ivh gateone-1.1-1.noarch.rpm# /opt/gateone/gateone.pysession_timeout = “1d”
origins = "http://localhost;https://localhost;” 后面加上https://本机ip地址(如我的就是https://203.195.241.52)
3.启动gateone
# service gateone start- 总结
- 特性:
- 支持多tab窗口模型
- 支持vim,mc,irssi,vifm语法
- 支持xterm鼠标事件
- 支持265色显示
- 支持session
gateone是一个HTML5基于Web的终端仿真器和SSH客户端。
- 特性:
没有浏览器插件需要!告别的Java,Flash和的ActiveX的安全问题。
多用户和多终端:数百个用户同时和终端都可以从浩哼硬件送达。
先进的终端仿真,包括256色,看中文字样式,和更多的支持。
支持捕获和内联内的终端显示图像和PDF文件(见截图)。
输入您的母语!gateone支持Unicode,国际键盘布局,和本地化的字符串(国际或国际化)。
自然的复制和粘贴操作:选中文本,然后使用浏览器的原生上下文菜单。在Mac上可以使用⌘-c和⌘-V和Linux桌面可以单击鼠标中键至糊状。按住Shift键插入的作品呢!
即使浏览器被关闭或断开终端会话就可以恢复。它们也可以从一个完全不同的计算机恢复。你再也不用担心办公室的VPN再次断开!
支持用户会话的服务器端日志记录通过系统日志,远程系统日志,或者直接到磁盘的任意组合。
gateone可以嵌入到任何Web应用程序。JavaScript的几行是所有需要!这里有一个互动式教学课程涵盖如何嵌入在测试目录(hello_embedded)可用。
许多认证机制的支持:匿名,则Kerberos(单点登录与Active Directory!),聚丙烯酰胺,谷歌认证,并有一个为应用程序中嵌入gateone(见的例子在测试目录中的聊天应用程序一个OpenID样的WebSocket API它是如何工作)。
gateone是一个易于定制:主题和插件可以增加功能或覆盖任何东西。事实上,gateone的SSH功能是通过一个插件完全实现。
插件可以用Python,JavaScript和CSS的任意组合。
gateone一台服务器可以停止和启动时没有用户失去他们的终端上运行的应用程序(甚至是SSH会话保持联系!)。
在SSH插件允许用户复制的会话,而不必重新输入他们的用户名和密码(它重新使用现有的SSH隧道)。它还支持基于密钥的认证,并包括支持RSA,DSA,ECDSA,甚至X.509证书的SSH身份管理器。
在SSH插件还提供了一个函数库等插件可以使用到当前连接的终端上无缝地执行后台操作。您可以捕获该输出从JavaScript和做任何你想做的事情。
书签插件可以让你追踪所有与标记,分类支持您的主机,并包含一个超快速的搜索。它的建立是为了处理数以千计的书签,并可以与任何网址你想使用-它不仅限于SSH!
该日志记录插件包括日志查看器,允许用户进行排序,浏览,以至出口他们的终端会话可以共享自包含的HTML文件的录音。演示在命令行上任何东西都可以很简单,比如执行任务,并点击一个按钮!
播放插件允许用户后退和播放它们连接的终端会话的实时,就像视频!这可以通过播放控制按钮或按住Shift键的同时滚动来完成。
- 便利的插件增加了许多方便的功能:
- IPv4和IPv6地址成为可以执行反向DNS查找可点击的元素。
- 的'ls-l的'输出转换成可以执行用户和组查找,把字节转换成可读的字符串,甚至告诉你'文件模式相当于“是权限字段的内容(例如:点击”CRW可点击元素-RW-RW-'会告诉你,“(字符设备)相等于权限”CHMOD 0666'“)。
- 系统日志消息的自动语法高亮。
该插件示例演示了如何编写自己的插件,并展示了在SSH插件的exec_remote_command()功能。
gateone依赖Python 2.6 +,Python 3,甚至pypy!
充当Web服务器,gateone守护小,重量轻,能够被包含在嵌入式设备。
- 它不支持上传文件到服务器
- 它虽然能支持账户登录,但是密码是明文存在配置文件里面的
- 登陆后只能远程操纵服务器本机。
- 它不支持上传文件。
- 它在UI和用户体验方面几乎没有在意。
- 代码兼容性差。不支持的口令较多。
- 文件上传的用户体验不是很好。
- 用户体验几乎没有考虑
- 安全性方面还可以加强
- 网站功能不直观