Reading view

There are new articles available, click to refresh the page.

Sshwifty: Web SSH & Telnet Client

Sshwifty: Web SSH & Telnet Client

发表于|更新于|实用教程
|字数总计:748|阅读时长:3分钟|阅读量:

说明

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
#若使用反向代理需删去--env,也可自行配置证书或使用自签证书:
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 #只允许连接预先设置的远程主机
}
文章作者: wayen
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wayen

评论
数据库加载中

通过Cloudflare_tunnel实现远程SSH

通过Cloudflare_tunnel实现远程SSH

发表于|更新于|实用教程
|字数总计:281|阅读时长:1分钟|阅读量:

说明

搭建Cloudflare_tunnel完成后似乎可以内网穿透了,但如果还要使用远程SSH仍需要几个步骤,本教程将介绍通过Cloudflare_tunnel实现远程SSH三种方法。

搭建Tunnel

给自己的SSH控制端也搭建Tunnel,可以使用代理命令<file path>/cloudflared access ssh --hostname ssh.xml.wiki通过SSH工具连接。

添加认证程序

首先打开工作台,点击左侧Access下的Applications创建应用。类型选择Self-hosted
09
然后本页按照下图填写内容,其他保持默认即可。
10
在添加规则页面,Policy name随便填写,具体的规则可按照下图填写,其他保持默认即可。
11
最后一页请如下图选择SSH,其他保持默认即可。
12
别忘记在Tunnel中的Public Hostname创建SSH规则,之后访问网站进行邮箱验证码登录即可。
08

SSH over WEB

简单来讲就是使用工具将SSH转为Web,再由Tunnel进行内网穿透。

ttyd

下载ttyd,默认监听7681端口,可通过参数-p指定。

1
2
chmod +x ttyd
./ttyd login

sshwifty

另见。使用Tunnel可不用配置SSL证书。

文章作者: wayen
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wayen

评论
数据库加载中

Cloudflare_tunnel内网穿透

Cloudflare_tunnel内网穿透

发表于|更新于|实用教程
|字数总计:340|阅读时长:1分钟|阅读量:

说明

借助Cloudflare_tunnel可以实现访问没有公网的主机服务,也可以安全保护自己代理公网端口,甚至在没有标准端口的Nat_vps上白嫖CDN。不需要花费一分钱的内网穿透,只需你添加一张信用卡即可。

教程

首先进入工作台,任意填写你的团队名称,选择Free Plan添加付款方式即可。
然后点击左侧Access下的Tunnels,创建一个Tunnel。
04
05
接着你可以选择自己的操作系统,以Onecloud为例选择Debianarm32bit,到页面下方复制左侧的命令到SSH窗口回车即可。下一步输入自己的Tunnel名称,点击保存。
06
之后填写自己想要穿透的内网端口。Subdomain是二级域名前缀,不要填解析过的;Path是网页路径,没有需求留空;Type选择http,URL是localhost+端口号。
07
最后在SSH窗口输入cloudflared tunnel login会输出一个网址,复制到浏览器打开,选择使用的域名授权即可。

远程SSH

服务中选择Type时请不要选择SSH,直接使用是无效的,你必须在SSH控制端同样安装Tunnel,或者在工作台新建一个SSH应用登录认证后使用。当然,最简单的办法就是把SSH通过Web分享出来再由Tunnel代理。
教程

文章作者: wayen
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wayen

评论
数据库加载中

❌