
本文发布于318天前,最后更新于138天前,其中的信息可能有所发展或是发生改变。
我们通常会使用SSH客户端连接服务器,比如夜梦使用过的XShell和Termius。但是,我们能否免去客户端的安装,直接用上SSH服务呢?
可以肯定可以,较新的系统都支持使用SSH,但是如果你也想要界面帮助你的使用,那么Web SSH就很适合你!
根据服务器的CPU架构,我们先到GitHub上面找到适合自己的版本。夜梦服务器的CPU架构是X86_64,所以这里选择的是sshwifty_0.3.1-beta-release_linux_amd64.tar.gz
cd ~ && mkdir webssh && cd webssh
# 下载到服务器
wget https://github.com/nirui/sshwifty/releases/download/0.3.1-beta-release-prebuild/sshwifty_0.3.1-beta-release_linux_amd64.tar.gz
# 解压文件
tar -xf sshwifty_0.3.1-beta-release_linux_amd64.tar.gz接下来需要我们进行配置,所以先查看一下默认的配置:
cat sshwifty.conf.example.json配置内容如下:
{
"HostName": "",
"SharedKey": "WEB_ACCESS_PASSWORD",
"DialTimeout": 5,
"Socks5": "",
"Socks5User": "",
"Socks5Password": "",
"Servers": [
{
"ListenInterface": "127.0.0.1",
"ListenPort": 8182,
"InitialTimeout": 3,
"ReadTimeout": 60,
"WriteTimeout": 60,
"HeartbeatTimeout": 20,
"ReadDelay": 10,
"WriteDelay": 10,
"TLSCertificateFile": "",
"TLSCertificateKeyFile": "",
"ServerMessage": "Programmers in China launched an online campaign against [implicitly forced overtime work](https://en.wikipedia.org/wiki/996_working_hour_system) in pursuit of balanced work-life relationship. Sshwifty wouldn't exist if its author must work such extreme hours. If you're benefiting from hobbyist projects like this one, please consider to support the action."
}
],
"Presets": [
{
"Title": "SDF.org Unix Shell",
"Type": "SSH",
"Host": "sdf.org: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",
"Authentication": "Private Key",
"Fingerprint": "SHA256:bgO...."
}
},
{
"Title": "My own super expensive router",
"Type": "Telnet",
"Host": "10.0.0.1",
"Meta": {
"Encoding": "ibm866"
}
}
],
"OnlyAllowPresetRemotes": false
}这里需要我们修改两个地方
vim sshwifty.conf.example.json第一处是访问密码:

第二处是监听IP和端口,需要把127.0.0.1改为0.0.0.0

修改后如下:

重命名sshwifty.conf.example.json为sshwifty.conf.json
mv sshwifty.conf.example.json sshwifty.conf.json运行十分简单:
./sshwifty_linux_amd64
然后你就可以通过ip:8192访问WebSSH了。
这里夜梦使用screen持久化运行sshwifty。
# 没有screen的话先安装
# apt install screen -y
screen -S sshwifty
# cd ~/webssh
./sshwifty_linux_amd64然后按ctrl+alt+d组合键退出screen。
此项目必须使用域名,并开启SSL。夜梦推荐使用Nginx Proxy Manager进行反向代理:
【docker】反向代理神器 ——Nginx Proxy Manager 的安装
【docker】Nginx Proxy Manager 的使用
请一定开启Websockets Support和Force SSL选项,否则你将无法使用Telnet功能/无法进入页面。


访问你的域名进入页面,输入你的密码。

一切无误,我们将进入主页面。

Telnet功能:

SSH功能:

Unable to authenticate: TypeError: Cannot read properties of undefined (reading ‘importKey’)

这个问题,主要是新的Chrome和Chromium内核浏览器,已经不支持非SSL的加密传输在SSH上。可行的解决方法:
夜梦不推荐使用这种方法进行SSH传输,这可能存在安全风险。如果非必须,还是使用XShell和Termius等SSH专用客户端进行连接比较好。