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
更多更優質的資訊,請關注我,你的支持會鼓勵我不斷分享更多更好的優質文章。