WebSSH
一个简单的Web应用程序,用作连接到ssh服务器的ssh客户端。它是用Python编写的,基于tornado,paramiko和xterm.js。
特征
- 支持SSH密码验证,包括空密码。
- 支持SSH公钥认证,包括DSA RSA ECDSA Ed25519密钥。
- 支持加密密钥。
- 支持双因素身份验证(基于时间的一次性密码)。
- 支持全屏终端。
- 终端窗口可调整大小。
- 自动检测ssh服务器的默认编码。
- 现代浏览器支持Chrome,Firefox,Safari,Edge,Opera。
运行原理图
要求
- Python 2.7 / 3.4 +
快速开始
- 安装此应用程序,运行命令 pip install webssh
- 启动Web服务器,运行命令 wssh
- 打开浏览器,导航到 127.0.0.1:8888
- 输入您的数据,提交表格。
服务器选项
#启动具有指定侦听地址的http服务器并侦听端口 wssh --address = ' 2.2.2.2 '-- port = 8000#启动HTTPS服务器,certFile中和密钥文件必须通过 wssh --certfile = ' /path/to/cert.crt ' --keyfile = ' /path/to/cert.key '#遗失主机密钥策略wssh --policy =拒绝#日志记录级别wssh --logging = debug#日志记录文件wssh --log-file-prefix = main.log#更多选项 wssh --help
浏览器控制台
//连接到你的ssh服务器wssh。connect(主机名,端口,用户名,密码,私钥,密码,totp);//将对象传递给wssh.connect var opts = { 主机名: '主机名', 港口: '港口', 用户名: ' username ', 密码: '密码', privatekey : '私钥文本', 密码: '密码', totp : ' totp '};w。连接(opts);//没有参数,wssh将使用表单数据连接wssh。connect();//为客户端设置一个新的编码以使用wssh。set_encoding(encoding);//重置编码以使用默认的wssh。reset_encoding();//向服务器发送命令wssh。发送( ' ls -l ');
自定义字体
自定义字体系列用法示例:
< style > @ font-face { font-family:' font-name ' ; src:url(' static / css / fonts / your-favorite-font '); } body { font-family:' font-name ' ; } style >
部署
在Nginx服务器后面运行
wssh --address = ' 127.0.0.1 ' - port = 8888 --policy = reject#Nginx配置示例位置 / { proxy_pass http://127.0.0.1:8888; proxy_http_version 1.1 ; proxy_read_timeout 300 ; proxy_set_header升级$ http_upgrade ; proxy_set_header连接“升级” ; proxy_set_header主机$ http_host ; proxy_set_header X-Real-IP $ remote_addr ; proxy_set_header X-Real-PORT $ remote_port ;}
作为独立服务器运行
wssh --port = 8080 --sslport = 4433 --certfile = ' cert.crt' - keyfile = ' cert.key '-- xheaders = False --policy = reject
提示
- 对于您选择的任何部署选择,请不要忘记启用SSL。
- 默认情况下,来自公共网络的普通http请求将被重定向或阻止,并且被重定向优先于被阻止。
- 尝试使用拒绝策略作为缺少的主机密钥策略以及经过验证的known_hosts,这将防止中间人攻击。想法是它按顺序检查系统主机密钥文件(“〜/ .ssh / known_hosts”)和应用程序主机密钥文件(“./ known_hosts”),如果找不到ssh服务器的主机名或密钥不是匹配,连接将被中止。
更多使用方法可以查看官方文档
开源地址:
https://github.com/huashengdun/webssh
更多更优质的资讯,请关注我,你的支持会鼓励我不断分享更多更好的优质文章。