开源地址: https://github.com/trzsz/trzsz-ssh
tssh 已实现 ssh 客户端常用的基本功能( 除了 ssh 端口转发 ),一般人用到的 ssh 功能都已支持,欢迎各位大佬试用。
两大额外功能( 亮点 ):
1 、支持选择( 搜索 )~/.ssh/config
中的服务器,进行登录。相当于 tssh 内置了服务器管理功能,并且类似 vim 的操作方式不需要用到鼠标。
2 、tssh 内置支持 trzsz ( trz / tsz ),这在 Windows 平台很有用,解决了 trzsz ssh
上传速度慢的问题。
PS:通过用 go 写一个 ssh 客户端,对 ssh 的原理了解更深入了,特别是 ProxyJump 和 ProxyCommand 相关逻辑。
1
mywaiting 2023-06-04 00:20:14 +08:00
赞~ 已经用上~
|
2
dianso 2023-06-04 01:31:20 +08:00
能支持 tabby 那种拆分吗?
|
3
LonnyWong OP @dianso 发一些 “tabby 那种拆分”的网页来看看?我比较少用 tabby ,不太清楚是个什么样的功能。
|
4
dianso 2023-06-04 02:28:45 +08:00
@LonnyWong #3 就是这样的
![cb72a3c7ef9060d9adcab865547c5442.png]( https://i.mjj.rip/2023/06/04/cb72a3c7ef9060d9adcab865547c5442.png) |
5
dianso 2023-06-04 02:29:05 +08:00
![cb72a3c7ef9060d9adcab865547c5442.png( https://i.mjj.rip/2023/06/04/cb72a3c7ef9060d9adcab865547c5442.png)
|
6
scyuns 2023-06-04 03:05:19 +08:00 via Android
赞,看起来挺不错。能支持批量脚本吗
|
7
yjd 2023-06-04 04:26:18 +08:00
之前弄连接用 https://github.com/PowerShell/Win32-OpenSSH ,下次有机会试试
|
8
LonnyWong OP @scyuns 用的是 go 的 ssh 标准库 https://pkg.go.dev/golang.org/x/crypto/ssh ,是有能力支持批量脚本的。批量脚本想做成怎么样交互和执行的呢?
|
9
LonnyWong OP @dianso 这种分屏,做的最好的是 tmux ,你可以将 tmux 结合 tssh 一起使用的。先用 tssh 登录服务器,然后在服务器上运行 tmux ,就可以用 tmux 的快捷键进行分屏了,具体用法可以网上搜一下 tmux 的教程。
|
10
LonnyWong OP @scyuns 批量执行的工具,你可以看看这个 https://github.com/shanghai-edu/multissh ,也是用 go 的 ssh 库实现的。如果你有更好的想法,也可以提出来。
|
11
jack4536251 2023-06-04 08:00:45 +08:00 via Android
能讲下其中的原理吗?
|
12
LonnyWong OP @jack4536251 刚搜脚本批量运行,找到了 https://cloud.tencent.com/developer/article/1187651 ,说的挺详细的,你可以先看看。tssh 也是类似的。
|
13
Monad 2023-06-04 08:55:19 +08:00 via iPhone
想了解一下是否能够内置支持 proxycommand 中通过 nc/corkscrew 的功能?在 Windows 上用 nc.exe 会有奇怪的卡顿感(类似于延迟很高的情况) 但是走 proxifier 则不会 所以怀疑是 nc.exe 的问题
|
14
LonnyWong OP @Monad ProxyCommand 其实是旧的代理方式了,新的是 ProxyJump 。如果你的代理是 http 协议,那 ProxyJump 搞不定。如果你只是用 ProxyCommand 经过某个跳板机,完全可以用 ProxyJump 代替。
具体可以发你的 ProxyCommand 出来看看?可以把敏感的信息打个掩码之类。 |
15
Monad 2023-06-04 09:24:39 +08:00
@LonnyWong ProxyCommand C:\ncat.exe --proxy-type socks4 --proxy 192.168.1.1:1337 %h %p
走的是局域网内的某个 ssh 本地转发的 socks 端口,但是这个版本不支持 socks5 所以指定 socks4 ncat.exe (不是 nc.exe ,一直搞混这两个...)是这里的 https://nmap.org/ncat/ |
16
AnroZ 2023-06-04 09:29:22 +08:00 1
虽然目前用不太到,star 支持
|
17
acerphoenix 2023-06-04 09:53:39 +08:00
这个不错,好像是我的菜。
我目前用 windterm ,但有点小问题,windows terminal 能解决,但 windows terminal 不支持 rzsz ,如果我没理解错的话,你这个是相当于把一个 windows terminal 的终端强化成支持 rzsz 的? 我 windows terminal 可以配置一些 profile ,然后在新建 tab 时选择 profile 就进了不同的服务器,用这个,就是在新建 tab 里执行 tssh ,然后再选择服务器就可以了吧? |
18
LonnyWong OP @acerphoenix 是的,在新 tab 里执行 tssh ,这时可以选择在 C:\Users\your_name\.ssh\config 中配置好的服务器( 这个配置要自己手写,兼容标准 ssh 的 ),选中某个服务器登录后,就可以使用 trz / tsz 上传和下载了。如果 tssh 带有参数,就和标准 ssh 几乎一样。
|
21
LonnyWong OP @Monad ProxyCommand 其实是经过了 stdin 和 stdout 的,这个我严重怀疑是 Windows 的锅,不管什么程序的 stdin 都超级慢。这也是 https://github.com/trzsz/trzsz-go 在 Windows 中上传慢的根本原因。
|
22
LonnyWong OP @bequt 支持 cmd 和 powershell 的,没弹出也没有报错?方便截个图看看?
|
24
bequt 2023-06-04 10:38:48 +08:00
@LonnyWong 可以用,没问题。
但是为啥 icon 是乱码呢。。。。 ![20230604-103722.jpg]( https://pic.sl.al/gdrive/pic/2023-06-04/647bf92257bf6.jpg) |
26
bequt 2023-06-04 11:03:10 +08:00
@LonnyWong 感觉不像,也不知道什么情况,凑合着用吧。已 star
![screenshot-20230604-110231.png]( https://pic.sl.al/gdrive/pic/2023-06-04/647bfee479062.png) |
27
whisper98 2023-06-04 11:04:18 +08:00
我是一个想参与开源项目的 gopher ,不知道 op 需不需要人帮忙😂
|
28
LonnyWong OP @whisper98 热烈欢迎参与。现在 trzsz 相关的 go 开源有两个项目:
1 、https://github.com/trzsz/trzsz-ssh 就是这个 tssh 项目,计划会将 ssh 客户端的常用功能用 go 都实现出来。 我计划下周末搞的是 -L -R -D -W 这几个 ssh 端口转发相关的功能。 2 、https://github.com/trzsz/trzsz-go 是这个 tssh 依赖的项目,主要实现 trz / tsz 上传和下载。 有几个功能想加的: 2.1 https://github.com/trzsz/trzsz-go/issues/28 中说到的第 7 点。 2.2 https://github.com/trzsz/trzsz-go/issues/27 中说到的第 1 点,在用户 ctrl + c 中止时,弹出个确认窗口,一方面可以选择删除已传部分或保留,一方面防止误触。 2.3 https://github.com/trzsz/trzsz-go/issues/10 说到的断点续传功能,这个改动量稍微有点大。 |
29
Wdafff 2023-06-04 11:43:09 +08:00
安装后:trz: The term 'trz' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again. |
30
LonnyWong OP @Wdafff 服务器上要安装 https://github.com/trzsz/trzsz-go
|
31
samondlee 2023-06-05 08:56:22 +08:00
你好,如果服务器地址是域名的话,是否支持优先解析 AAAA IPV6 地址呢。
|
32
LonnyWong OP @samondlee 建连接是这一行: https://github.com/trzsz/trzsz-ssh/blob/e5fd8424f371fc35243d23b7afb1e784b956af07/login.go#L526
第一个参数是 tcp ,并没有指定 tcp4 或 tcp6 ,按理说是优先 ipv6 的。 |