说明
Sshwifty是一个用于SSH的网页客户端,并集成了Telnet功能。相比于ttyd,Sshwifty提供了密匙认证,在能够访问自身服务器的基础上又可以连接其他服务器,十分的便利。
安装
点击本小节标题选择适合自己架构的安装包,如sshwifty_0.2.35-beta-release_linux_amd64.tar.gz。注意:Sshwifty登录需要配置SSL证书,否则会报错无法登录,建议使用Caddy反向代理。
1 2 3 4
| tar -xvf sshwifty_0.2.35-beta-release_linux_amd64.tar.gz mv sshwifty.conf.example.json sshwifty.conf.json chmod +x sshwifty_linux_amd64 ./sshwifty_linux_amd64
|
Docker安装
1 2 3 4 5 6 7 8 9 10
| docker run --detach \ --restart always \ --publish 8182:8182 \ --env SSHWIFTY_DOCKER_TLSCERT="$(cat domain.crt)" \ --env SSHWIFTY_DOCKER_TLSCERTKEY="$(cat domain.key)" \ --name sshwifty \ niruix/sshwifty:latest
openssl req \ -newkey rsa:4096 -nodes -keyout domain.key -x509 -days 90 -out domain.crt
|
配置详解
sshwifty.conf.json需要与sshwifty_linux_amd64同目录,或放置在/etc/
与/root/.config/
之一即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| { "HostName": "", #默认为空允许所有域名,可指定域名 "SharedKey": "WEB_ACCESS_PASSWORD", #网页登录密码,为空则允许所有人访问 "DialTimeout": 5, #超时时间(秒) "Socks5": "", #使用Socks5代理 "Socks5User": "", #Socks5用户名 "Socks5Password": "", #Socks5密码 "Servers": [ #可设置多个,在不同端口提供服务 { "ListenInterface": "0.0.0.0", #监听本地网络接口 "ListenPort": 8182, #监听端口 "InitialTimeout": 3, #HTTP握手超时(秒) "ReadTimeout": 60, #无操作时后端服务器与客户端保持连接时间(秒) "WriteTimeout": 60, #服务器等待客户端连接准备接收新数据时间(秒),超时连接关闭 "HeartbeatTimeout": 20, #内部回显请求间隔(秒) "ReadDelay": 10, #每个请求之间强制延迟(毫秒) "WriteDelay": 10, #每次写入之间强制延迟(毫秒) "TLSCertificateFile": "", #SSL证书路径 "TLSCertificateKeyFile": "" #SSL证书密匙路径 } ], "Presets": [ #预先设置内容,以免手动再填写 { "Title": "SDF.org Unix Shell", #名称 "Type": "SSH", #连接类型SSH或Telnet "Host": "xml.wiki:22", #连接地址和端口 "Meta": { "Encoding": "utf-8", #编码 "Authentication": "Password" #认证方式,密码或密匙认证 } }, { "Title": "My own super secure server", "Type": "SSH", "Host": "localhost", "Meta": { "User": "root", "Encoding": "utf-8", "Private Key": "-----BEGIN RSA Will be sent to client-END RSA PRI...\n", #私匙内容 #"Private Key": "file:///root/.ssh/private_key", #也可指定私匙文件 "Authentication": "Private Key", #认证方式,密匙认证 "Fingerprint": "SHA256:bgO...." #公匙指纹数据,默认 } }, { "Title": "My own super expensive router", "Type": "Telnet", "Host": "10.0.0.1", "Meta": { "Encoding": "ibm866" } } ], "OnlyAllowPresetRemotes": false #只允许连接预先设置的远程主机 }
|