V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
LonnyWong
V2EX  ›  程序员

开源 ssh 客户端:支持自定义主题和颜色,看看你喜欢哪一种?

  •  1
     
  •   LonnyWong · 2024-01-22 08:24:35 +08:00 · 6387 次点击
    这是一个创建于 374 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • trzsz ssh ( tssh ) 是个 ssh 客户端,但不是一个终端,而是运行在其他终端的本地 shell 里的 ssh 程序,扩展了 ssh 的功能,协助其他终端提供更好的使用体验,开源地址:https://github.com/trzsz/trzsz-ssh

    • 在开源立项时,我随便写了个主题风格,并没有花太多精力去美化它(想着多人用了再说),而将更多的精力投入到内在美(功能)。现在 GitHub Star 超过 1K 了,是时候打扮的漂漂亮亮的了。

    • 开始选用了 promptui 实现 TUI 界面,后来发现 bubbletea 更强大,更新更积极,但我不想放弃已写的代码,于是就再次魔改 promptui,让它支持 lipgloss,完美解决。

    • 写了三个主题风格,抛砖引玉,我觉得还是不够漂亮,但是我的美术水平有限,期待大家一起来贡献更多漂亮的主题风格,让用户选的“眼花缭乱”。

    • 每个人的审美都不太一样,这里请大家帮忙选出一个最好看的,设为默认值。等以后有人设计出更漂亮的,默认值会根据投票数量进行修改。

    • 主题风格的颜色是可以自定义的,并且与终端的设置有关,除了看我的录屏,最好是自己安装来试试,go install github.com/trzsz/trzsz-ssh/cmd/tssh@main 然后运行 ~/go/bin/tssh

    • 投票链接:https://github.com/trzsz/trzsz-ssh/issues/75

    • 请大家在 V2 讨论,在 issue 里的评论会被我删除,为以后大家贡献的新主题风格预留位置。锁定 issue 好像就不能投票了?

    • tiny 小巧风 https://trzsz.github.io/images/tssh_tiny.gif tiny theme

    • simple 简约风 https://trzsz.github.io/images/tssh_simple.gif simple theme

    • table 表格风 https://trzsz.github.io/images/tssh_table.gif table theme

    65 条回复    2024-11-05 22:04:28 +08:00
    rihkddd
        1
    rihkddd  
       2024-01-22 08:43:23 +08:00
    tiny 一票
    LonnyWong
        2
    LonnyWong  
    OP
       2024-01-22 08:50:01 +08:00
    @rihkddd 不是 table 比较惊艳吗?
    jeanz
        3
    jeanz  
       2024-01-22 09:11:54 +08:00
    tiny +1
    另外两个感觉太空了,信息密度不高
    afutureus
        4
    afutureus  
       2024-01-22 09:20:01 +08:00
    tiny + 1
    LonnyWong
        5
    LonnyWong  
    OP
       2024-01-22 09:22:55 +08:00 via iPhone
    @rihkddd
    @jeanz
    @afutureus

    不是吧?大家这么一致的审美?

    开始的版本就跟 tiny 差不多,我觉得有一点点密了,就简单搞了个 simple 出来,然后又觉得有一点疏了,就想着中间填充一些细线,搞了个 table 出来。

    这就纠结了,默认哪个呢?我更期待有人一起来设计更好看的主题。
    sjtulyj
        6
    sjtulyj  
       2024-01-22 09:28:22 +08:00
    装好 tssh 后没有 trz tsz 命令怎么解决 ?
    shiyuu
        7
    shiyuu  
       2024-01-22 09:30:04 +08:00
    我是 MobaXterm+WindTerm
    LonnyWong
        8
    LonnyWong  
    OP
       2024-01-22 09:36:55 +08:00
    @sjtulyj 我这次还花了很长的时间重写了文档,在 https://github.com/trzsz/trzsz-ssh 中找 trzsz ( trz / tsz ) 那个中文链接。

    简单说,就是服务器上要安装 trzsz ,建议安装 go 版,开源地址: https://github.com/trzsz/trzsz-go


    <https://github.com/trzsz/trzsz-ssh/blob/main/README.cn.md#%E6%94%AF%E6%8C%81-trzsz>
    LonnyWong
        9
    LonnyWong  
    OP
       2024-01-22 10:15:53 +08:00
    @shiyuu #7 试用一下 trzsz-ssh ( tssh ) 可能会发现新大陆?支持在任意有本地 shell 的终端中使用。

    PS:本地 shell 是指正常的,例如原生终端等。不是 xshell 那种阉割的本地 shell 。
    Maysec
        10
    Maysec  
       2024-01-22 10:24:44 +08:00
    tiny 很棒!
    weilongs
        11
    weilongs  
       2024-01-22 10:47:43 +08:00
    喜欢 tiny , 但是我第一次使用这个。我在配置文件写入好像没变化。不清楚怎么去体验到。
    AmaQuinton
        12
    AmaQuinton  
       2024-01-22 10:50:55 +08:00
    windows 安装 tssh ,trz 上传第二个文件时会闪退、上传第一个文件没问题;会偶现鼠标键盘操作无效,过一会儿在任务管理器里面关闭 Terminal 才能解决

    在 intellij idea 里面看日志使用 tssh 很方便,上传文件又换回了 xshell 、xftp 组合
    LonnyWong
        13
    LonnyWong  
    OP
       2024-01-22 10:54:16 +08:00
    @weilongs #11 新的功能还没发布,还在 main 分支中。
    你这样安装 go install github.com/trzsz/trzsz-ssh/cmd/tssh@main 然后运行 ~/go/bin/tssh ,就可以体验到了。
    LonnyWong
        14
    LonnyWong  
    OP
       2024-01-22 10:56:43 +08:00
    @AmaQuinton 闪退时,有错误输出吗?提个 issue ?

    tssh -v 看看是哪个版本?
    tssh 是直接登录到服务器,还是有经过跳板机?
    有没有 ProxyCommand 之类使用代理?
    weilongs
        15
    weilongs  
       2024-01-22 11:20:56 +08:00
    @LonnyWong 哦 我还以为我操作问题。那没事,我就暂时默认主题。等正式版发了再体验主题。tiny 我喜欢,哈哈。
    AmaQuinton
        16
    AmaQuinton  
       2024-01-22 11:43:15 +08:00
    @LonnyWong #14 issue 已提交
    LonnyWong
        17
    LonnyWong  
    OP
       2024-01-22 12:05:34 +08:00
    @AmaQuinton 感谢反馈。换一个文件也会这样?
    sjtulyj
        18
    sjtulyj  
       2024-01-22 12:47:26 +08:00
    @LonnyWong trzsz trzsz-ssh 这些名字也太像了, 根本不知道是同一个软件的不同语言版本还是不同软件
    LonnyWong
        19
    LonnyWong  
    OP
       2024-01-22 13:00:15 +08:00
    @sjtulyj #18 先有 trzsz ( trz / tsz ),后有 tssh ,就是支持 trzsz 的 ssh 。

    本地安装 go 版 trzsz 后,trzsz ssh 这样运行也是可以的,是运行的 trzsz 程序,然后调用 ssh 子程序。

    tssh 是自己实现了 ssh 的功能,然后内置了 trzsz 的功能,都是 go 写的,实际上也是将 trzsz 作为一个 package 来依赖的。
    sjtulyj
        20
    sjtulyj  
       2024-01-22 13:02:07 +08:00
    @LonnyWong 有没有可能 trz tsz tssh 都放在一个仓库里, 3 个一起装 ?
    nxuu
        21
    nxuu  
       2024-01-22 13:02:43 +08:00
    webssh
    sjtulyj
        22
    sjtulyj  
       2024-01-22 13:03:05 +08:00
    或者一行命令全装上
    sjtulyj
        23
    sjtulyj  
       2024-01-22 13:05:11 +08:00
    或者一行命令 3 个全装上
    LonnyWong
        24
    LonnyWong  
    OP
       2024-01-22 13:05:37 +08:00
    @sjtulyj #22 一般来说,是本地安装 tssh ,远程服务器安装 trzsz 就够了。
    LonnyWong
        25
    LonnyWong  
    OP
       2024-01-22 13:07:02 +08:00
    @sjtulyj 本地不需要安装 trz tsz ,所以没放在一个包里。
    LonnyWong
        26
    LonnyWong  
    OP
       2024-01-22 13:10:18 +08:00
    @nxuu #21 tssh 是用 go 写的,可以编译成 wasm ,然后运行在 web 浏览器里。不过,我还没空去研究,可能还要想办法解决读取 ~/.ssh/config 的问题吧,私钥不能读取,只能手输密码登录?
    sjtulyj
        27
    sjtulyj  
       2024-01-22 13:19:25 +08:00
    @LonnyWong 我倒是不介意多装
    LonnyWong
        28
    LonnyWong  
    OP
       2024-01-22 13:26:33 +08:00
    @sjtulyj 你可以一行命令安装的,如:

    brew install trzsz-ssh trzsz-go

    scoop install tssh trzsz

    brew 中,tssh 名字被占了,所以用全名,trzsz 被我自己的 python 版 trzsz 占了,所以加个 -go 后缀。其他基本都是 tssh 和 trzzz 这两个名字。
    LonnyWong
        29
    LonnyWong  
    OP
       2024-01-22 13:28:15 +08:00
    #28 最后的 trzzz 输入错误,是 trzsz 哈。
    timnottom
        30
    timnottom  
       2024-01-22 13:41:44 +08:00
    插楼问一下,能不能在第一次使用 tssh 连接后,自动保存连接信息到~/.ssh/config ?
    LonnyWong
        31
    LonnyWong  
    OP
       2024-01-22 13:45:40 +08:00
    @timnottom 你可以在第一次用 tssh --new-host 登录,就会保存到 ~/.ssh/config 中。
    timnottom
        32
    timnottom  
       2024-01-22 13:55:50 +08:00
    @LonnyWong #31 比如说,我连接信息有变(例如端口号变了),怎样通过 tssh 更新 config ?

    ps:windows 下,着实不想手动打开 config 文件
    LonnyWong
        33
    LonnyWong  
    OP
       2024-01-22 13:59:13 +08:00
    @timnottom 这个现在还不支持哈,或者实现一个 tssh --edit-host 的功能?
    zlhsvc
        34
    zlhsvc  
       2024-01-22 14:06:28 +08:00
    tiny +1
    个人感觉简单实用就好,表格的好看是好看,但用起来信息密度不够,而且有的情况下样式会乱
    timnottom
        35
    timnottom  
       2024-01-22 14:09:17 +08:00
    @LonnyWong #33 😁我看行,windows 下修改 config 文件要点很多次鼠标,很烦
    LonnyWong
        36
    LonnyWong  
    OP
       2024-01-22 14:17:26 +08:00
    @timnottom Windows 也有 vim 和 nvim 的,不过我用起来感觉还是没有 Linux 和 Mac 的舒适,可能是我没花什么时间去配置它吧。
    nuII
        37
    nuII  
       2024-01-22 14:24:29 +08:00
    table 的表格框太大了,我个人来说 terminal 界面下信息越聚集越好,其他两个列没对齐是个减分项
    LonnyWong
        38
    LonnyWong  
    OP
       2024-01-22 15:21:19 +08:00
    @nuII 好吧,表格对齐不是很好搞,有空时再研究研究。
    rihkddd
        39
    rihkddd  
       2024-01-22 15:48:54 +08:00   ❤️ 1
    @LonnyWong #2 打开 tssh 之后,最快能登录上机器就是最好的体验,一般来说大部分手里十几个机器的情况,tiny 提供了比较高的信息密度,在视野中心区域就能放下所有的机器。我觉得配色之类的不是关键,因为这个界面不是需要长时间停留的(反过来说停留时间太长,反倒是说明功能没做好)。
    kneo
        40
    kneo  
       2024-01-22 16:42:27 +08:00 via Android
    体验都很糟糕。第一个相对好点。
    主要问题是:过滤的时候,底下的 ssh details 跟着一起上下动,右边的 enter to lock 也在左右动。
    相对来说,是表格还是列表,间距是否紧凑,反而都是次要的。
    broken123
        41
    broken123  
       2024-01-22 17:13:01 +08:00
    我用 Warp
    programMrxu
        42
    programMrxu  
       2024-01-22 17:18:13 +08:00
    感觉 tiny 比较好
    LonnyWong
        43
    LonnyWong  
    OP
       2024-01-22 17:36:13 +08:00
    @broken123 #41 tssh 支持在 warp 中使用的,专门为它写了文档。
    sjtulyj
        44
    sjtulyj  
       2024-01-22 18:01:10 +08:00
    放在以前我会用,
    不过现在用 `wezterm ssh` , 冲突了
    LonnyWong
        45
    LonnyWong  
    OP
       2024-01-22 20:38:09 +08:00 via iPhone
    @sjtulyj #44 tssh 与 wezterm 冲突?没有吧。
    sjtulyj
        46
    sjtulyj  
       2024-01-22 21:25:42 +08:00
    `wezterm ssh` 和 tssh 是竞争关系
    LonnyWong
        47
    LonnyWong  
    OP
       2024-01-22 21:33:19 +08:00 via iPhone
    @sjtulyj #46 竞争关系?看来你还是没看懂我本贴的第一句啊。

    wezterm 和 tssh 不是竞争关系,你可以 wezterm tssh 这样用的。tssh 和绝大部分终端都不是竞争关系,是合作关系。

    你如果说 ssh 和 tssh 是竞争关系,那还勉强说的通,但 tssh 也不是要跟 ssh 争,是力求兼容 ssh 的。
    sjtulyj
        48
    sjtulyj  
       2024-01-22 21:47:53 +08:00
    @LonnyWong 不知道你有没有用过 wezterm connect, wezterm ssh
    其实就是 ssh 客户端的选择
    lstz
        49
    lstz  
       2024-01-22 22:00:15 +08:00
    tiny 更喜欢
    LonnyWong
        50
    LonnyWong  
    OP
       2024-01-22 22:03:02 +08:00 via iPhone
    @sjtulyj #48 你把 tssh 重命名为 ssh ,然后放到 /usr/local/bin/ 下,然后用 wezterm connect 看看会不会调起 tssh ? trz tsz 是不是能传文件?

    另外,把 wezterm ssh 中的 ssh 换成 tssh ,即 wezterm tssh 是不是也一切正常,并且支持 trz tsz 传文件?
    yechentide
        51
    yechentide  
       2024-01-22 22:07:31 +08:00
    看到 TUI 的部分感觉有点眼熟,果然是 bubbletea 哈哈
    LonnyWong
        52
    LonnyWong  
    OP
       2024-01-22 22:13:32 +08:00 via iPhone
    @yechentide tiny 和 simple 是 promptui
    addenvex
        53
    addenvex  
       2024-01-22 22:58:42 +08:00
    tiny+1
    hermanarturo
        54
    hermanarturo  
       2024-01-22 23:17:11 +08:00
    tiny + 1
    LonnyWong
        55
    LonnyWong  
    OP
       2024-01-23 09:04:35 +08:00 via iPhone
    这次更新,除了个提供多种主题可选外,最大的特点就是颜色支持自定义,大家无需再看我乱选的颜色了,可以按自己的喜好来设置。
    sjtulyj
        56
    sjtulyj  
       2024-01-23 09:19:04 +08:00
    @LonnyWong fail
    shervy
        57
    shervy  
       2024-01-23 12:24:28 +08:00 via iPhone
    terminus
    Achophiark
        58
    Achophiark  
       2024-01-23 16:30:37 +08:00 via Android
    tiny 还是顺眼
    sungo
        59
    sungo  
       2024-01-23 19:35:36 +08:00 via Android
    遇到过假死的情况,就是上传文件时
    LonnyWong
        60
    LonnyWong  
    OP
       2024-01-23 19:47:10 +08:00
    @sungo 能复现不?是否有超时退出了?大约 20 秒。网络可能突然中断了,那是没办法的,有正常超时退出就好。
    Ehco1996
        61
    Ehco1996  
       2024-01-24 09:03:01 +08:00
    点个赞 感谢付出
    xycost233
        62
    xycost233  
       2024-01-24 09:46:15 +08:00
    tiny + 1
    molezznet
        63
    molezznet  
       86 天前
    10M 确实小巧,有没有可能设置读取当前 exe 程序所在目录 config 和私钥, 想作为 u 盘便携工具带着维护 ……
    LonnyWong
        64
    LonnyWong  
    OP
       86 天前
    @molezznet 可以 -F 指定配置文件,-i 指定私钥文件。
    molezznet
        65
    molezznet  
       86 天前
    @LonnyWong 好使方便,弄成 bat 带着跑。
    readme 里好像真没你说的这个法子
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   730 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 92ms · UTC 19:47 · PVG 03:47 · LAX 11:47 · JFK 14:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.