
tssh 是一个 openssh 客户端的替代品, 基础功能兼容 openssh,另外提供了很多有用的扩展功能。
新版本 v0.1.19 解决了一些大家遇到的问题,配置的注释做了一点小调整。
GitHub:https://github.com/trzsz/trzsz-ssh
Gitee:https://gitee.com/trzsz/tssh
配置注释
-  tssh配置中的注释基本与openssh一致,额外做了一些扩展支持,详见下表:注释 openssh tssh #开头的配置行是注释 是注释 #!!开头的配置行是注释 非注释 Key Value # Comment看情况 是注释 Key=Value # Comment看情况 非注释 
-  #开头的配置行,openssh一律认为是注释;tssh认为#!!开头的配置行不是注释,其他以#开头的配置行是注释。
-  Key Value # Comment配置(没有=号),openssh有些情况认为#后的内容是注释,有些情况认为不是注释;tssh一律认为#后的内容是注释。
-  Key=Value # Comment配置(有=号),openssh有些情况认为#后的内容是注释,有些情况认为不是注释;tssh一律认为#后的内容不是注释。
为什么做
-  服务器太多,记不住所有别名, tssh内置登录界面,支持搜索和选择服务器登录。
-  tssh登录服务器后,内置支持 trzsz (trz /tsz) 工具,传文件无需另外新开窗口。
-  有时需要同时登录一批机器, tssh支持多选并批量登录,同时支持执行预设的命令。
-  有些服务器不支持公钥登录, tssh支持记住密码,支持自动交互,提升登录的效率。
-  在 Windows 中使用 tssh代替trzsz ssh,可以解决trz上传速度很慢的问题。
安装方法
客户端安装 trzsz-ssh ( tssh ) 的方法如下( 任选其一 ):
-  Windows 可用 scoop / winget / choco 安装 scoop install tssh/winget install tssh/choco install tsshscoop install tssh winget install tssh choco install tssh 
-  MacOS 可用 homebrew 安装 brew install trzsz-sshbrew update brew install trzsz-ssh 
-  Ubuntu 可用 apt 安装 sudo apt install tsshsudo apt update && sudo apt install software-properties-common sudo add-apt-repository ppa:trzsz/ppa && sudo apt update sudo apt install tssh 
-  Debian 可用 apt 安装 sudo apt install tsshsudo apt install curl gpg curl -s 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x7074ce75da7cc691c1ae1a7c7e51d1ad956055ca' \ | gpg --dearmor -o /usr/share/keyrings/trzsz.gpg echo 'deb [signed-by=/usr/share/keyrings/trzsz.gpg] https://ppa.launchpadcontent.net/trzsz/ppa/ubuntu jammy main' \ | sudo tee /etc/apt/sources.list.d/trzsz.list sudo apt update sudo apt install tssh 
-  Linux 可用 yum 安装 sudo yum install tssh-  国内推荐使用 wlnmp 源,安装 tssh 只需要添加 wlnmp 源( 配置 epel 源不是必须的 ): curl -fsSL "https://sh.wlnmp.com/wlnmp.sh" | bash sudo yum install tssh 
-  也可使用 gemfury 源( 只要网络通,所有操作系统通用 ) echo '[trzsz] name=Trzsz Repo baseurl=https://yum.fury.io/trzsz/ enabled=1 gpgcheck=0' | sudo tee /etc/yum.repos.d/trzsz.repo sudo yum install tssh 
 
-  
-  ArchLinux 可用 yay 安装 yay -S tsshyay -Syu yay -S tssh 
-  用 Go 直接安装( 要求 go 1.20 以上 ) go install github.com/trzsz/trzsz-ssh/cmd/tssh@latestgo install github.com/trzsz/trzsz-ssh/cmd/tssh@latest 安装后, tssh程序一般位于~/go/bin/目录下( Windows 一般在C:\Users\your_name\go\bin\)。
-  用 Go 自己编译( 要求 go 1.20 以上 ) sudo make installwinget install tssh 0 
-  可从 GitHub Releases 中下载,国内可从 Gitee 发行版 中下载,解压并加到 PATH环境变量中。
登录界面
-  使用之前,需要配置好 ~/.ssh/config( Windows 是C:\Users\xxx\.ssh\config,xxx换成用户名 )。
-  关于如何配置 ~/.ssh/config,请参考 openssh ( 暂不支持Match),或参考 tssh wiki SSH 基本配置。
-  直接无参数运行 tssh命令就会打开登录界面,或者有除目标机器外的其他参数也会打开登录界面。
-  如果目标机器参数是 ~/.ssh/config中别名的一部分,不能完全匹配某个别名,也会打开登录界面。
-  别名含有 *或?通配符时,则不会显示在登录界面中,要隐藏的别名可以加个*前缀或后缀。
-  tssh支持很多快捷键,支持搜索,在tmux、iTerm2和Windows Terminal等中使用时支持多选。操作 全局快捷键 非搜索快捷键 快捷键描述 Confirm Enter 确认并登录 Quit/Exit Ctrl+C Ctrl+Q q Q 取消并退出 Move Prev Ctrl+K Shift+Tab ↑ k K 往上移光标 Move Next Ctrl+J Tab ↓ j J 往下移光标 Page Up Ctrl+H Ctrl+U Ctrl+B PageUp ← h H u U b B 往上翻一页 Page Down Ctrl+L Ctrl+D Ctrl+F PageDown → l L d D f F 往下翻一页 Goto Home Home g 跳到第一行 Goto End End G 跳到最尾行 EraseKeys Ctrl+E e E 擦除搜索关键字 TglSearch / 切换搜索功能 Tgl Help ? 切换帮助信息 TglSelect Ctrl+X Ctrl+Space Alt+Space Space x X 切换选中状态 SelectAll Ctrl+A a A 全选当前页 SelectOpp Ctrl+O o O 反选当前页 Open Wins Ctrl+W w W 新窗口批量登录 Open Tabs Ctrl+T t T 新 Tab 批量登录 Open Pane Ctrl+P p P 分屏批量登录 
主题风格
-  tssh支持多种主题风格,在~/.tssh.conf中配置PromptThemeLayout选用。欢迎一起来创造更多更好看的。
-  每种主题风格都支持自定义颜色,在 ~/.tssh.conf中配置PromptThemeColors,只要配置非默认的颜色即可。
-  请为你喜欢的主题风格❤️投票❤️,得票数最高的主题风格将会在下个版本被设置为默认主题。 
tiny 小巧风
-  在 ~/.tssh.conf中配置PromptThemeLayout = tiny选用tiny 小巧风。 
-  在 ~/.tssh.conf中配置PromptThemeColors,要求配置成一行。tiny 小巧风支持以下配置项:tiny 颜色配置项和默认值:winget install tssh 1 tiny 支持的颜色枚举,可用 `|` 连接多个:winget install tssh 2 
simple 简约风
-  在 ~/.tssh.conf中配置PromptThemeLayout = simple选用simple 简约风。 
-  simple 简约风支持的颜色配置项、默认值和颜色枚举,和tiny 小巧风完全相同,请参考前文。
table 表格风
-  在 ~/.tssh.conf中配置PromptThemeLayout = table选用table 表格风。 
-  在 ~/.tssh.conf中配置PromptThemeColors,要求配置成一行。table 表格风支持以下配置项:table 颜色配置项和默认值:winget install tssh 3 
-  支持的颜色枚举请参考 lipgloss,除了 help_tips和shortcuts与前文tiny 小巧风相同。
支持 trzsz
-  在服务器上要安装 trzsz,才能使用 trz / tsz上传和下载,可任选其一安装:Go 版( ⭐ 推荐 )、Py 版、Js 版。
-  在 ~/.ssh/config或ExConfigPath配置文件中,配置EnableDragFile为Yes启用拖拽上传功能。winget install tssh 4 
-  如果只是想临时启用拖拽上传功能,可以在命令行中使用 tssh --dragfile登录服务器。
-  在 ~/.ssh/config或ExConfigPath配置文件中,配置EnableTrzsz为No禁用 trzsz 和 zmodem。winget install tssh 5 
支持 zmodem
-  在 ~/.ssh/config或ExConfigPath配置文件中,配置EnableZmodem为Yes启用rz / sz功能。winget install tssh 6 
-  除了服务器,本地电脑也要安装 lrzsz,Windows 可以从 lrzsz-win32 下载,解压并加到PATH环境变量中,也可以如下安装:winget install tssh 7 winget install tssh 8 
-  如果只是想临时启用 rz / sz传文件功能,可以在命令行中使用tssh --zmodem登录服务器。
-  关于 rz / sz进度条,己传大小和传输速度会有一点偏差,它的主要作用只是指示传输正在进行中。
批量登录
-  支持在 iTerm2( 要开启 Python API,但不需要Allow all apps to connect),tmux和Windows Terminal中一次选择多台服务器,批量登录,并支持批量执行预先指定的命令。
-  按下 Space、Ctrl+X等可以选中或取消当前服务器,若不能选中说明还不支持当前终端,请先运行tmux。
-  按下 a或Ctrl+A全选当前页所有机器,o或Ctrl+O反选当前页所有机器,d或l翻到下一页。
-  按下 p或Ctrl+P以分屏的方式登录,w或Ctrl+W以新窗口登录,t或Ctrl+T以新 tab 登录。
-  tssh不带参数启动可以批量登录服务器,若带-o RemoteCommand参数启动则可以批量执行指定的命令。支持执行指定命令之后进入交互式 shell,但Windows Terminal不支持分号;,可以用|cat&&代替。举例:winget install tssh 9 
分组标签
-  如果服务器数量很多,分组标签 GroupLabels可以在按/搜索时,快速找到目标服务器。
-  按 /输入分组标签后,回车可以锁定;再按/可以输入另一个分组标签,回车再次锁定。
-  在非搜索模式下,按 E可以清空当前搜索标签;在搜索模式下按Ctrl + E也是同样效果。
-  支持在一个 GroupLabels中以空格分隔,配置多个分组标签;支持配置多个GroupLabels。
-  支持以通配符 * 的形式,在多个 Host 节点配置分组标签, tssh会将所有的标签汇总起来。choco install tssh 0 
自动交互
-  支持类似 expect的自动交互功能,在登录服务器之后,自动匹配服务器的输出,然后自动输入。choco install tssh 1 
-  在每个 ExpectPattern?匹配之前,如果遇到可选的匹配则自动输入,用法如下:choco install tssh 2 
-  在匹配到指定输出时,执行指定的命令获取动态密码,然后自动输入,用法如下: choco install tssh 3 
-  可能有些服务器不支持连着发送数据,如输入 1\r,要求在1之后有一点延迟,然后再\r回车,则可以用\|间开。choco install tssh 4 
-  如果不知道 ExpectPattern2如何配置,可以先将ExpectCount配置为2,然后使用tssh --debug登录,就会看到expect捕获到的输出,可以直接复制输出的最后部分来配置ExpectPattern2。把2换成其他任意的数字也适用。
记住密码
-  推荐使用公钥认证登录,可参考 openssh 的文档,或者参考 tssh wiki 公钥认证登录。 
-  如果只能使用密码登录,建议至少设置一下配置文件的权限,如: choco install tssh 5 
-  下面配置 test1和test2的密码是123456,其他以test开头的密码是111111:choco install tssh 6 
-  如果启用了 ControlMaster多路复用,或者是在Warp终端,需要使用前面自动交互的方式实现记住密码的效果。配置方式请参考前面自动交互,加上Ctrl前缀即可,如:choco install tssh 7 
-  支持记住私钥的 Passphrase( 推荐使用ssh-agent)。支持与IdentityFile一起配置,支持使用私钥文件名代替 Host 别名设置通用密钥的Passphrase。举例:choco install tssh 8 
-  记住密码之后还提示输入密码?可能服务器的认证方式是keyboard interactive,请参考下文记住答案。
记住答案
-  除了私钥和密码,还有一种登录方式,英文叫 keyboard interactive ,是服务器返回一些问题,客户端提供正确的答案就能登录,很多自定义的一次性密码就是利用这种方式实现的。 
-  对于只有一个问题,且答案(密码)固定不变的,只要配置 QuestionAnswer1即可。对于有多个问题的,可以按问题的序号进行配置,也可以按问题的 hex 编码进行配置。
-  使用 tssh --debug登录,会输出问题的 hex 编码,从而知道该如何使用 hex 编码进行配置。配置举例:choco install tssh 9 
-  对于可以通过命令行获取到的动态密码,则可以如下配置(同样支持按序号或 hex 编码进行配置): brew update brew install trzsz-ssh 0 
-  如果启用了 ControlMaster多路复用,或者是在Warp终端,请参考前面自动交互加Ctrl前缀来实现。brew update brew install trzsz-ssh 1 
个性配置
-  支持在 ~/.tssh.conf( Windows 是C:\Users\your_name\.tssh.conf)中进行以下自定义配置:brew update brew install trzsz-ssh 2 
配置注释
-  tssh配置中的注释基本与openssh一致,额外做了一些扩展支持,详见下表:注释 openssh tssh #开头的配置行是注释 是注释 #!!开头的配置行是注释 非注释 Key Value # Comment看情况 是注释 Key=Value # Comment看情况 非注释 
-  #开头的配置行,openssh一律认为是注释;tssh认为#!!开头的配置行不是注释,其他以#开头的配置行是注释。
-  Key Value # Comment配置(没有=号),openssh有些情况认为#后的内容是注释,有些情况认为不是注释;tssh一律认为#后的内容是注释。
-  Key=Value # Comment配置(有=号),openssh有些情况认为#后的内容是注释,有些情况认为不是注释;tssh一律认为#后的内容不是注释。
其他功能
-  使用 -f后台运行时,可以加上--reconnect参数,在后台进程因连接断开等而退出时,会自动重新连接。
-  运行 tssh --enc-secret,输入密码或答案,可得到用于配置的密文( 相同密码每次运行结果不同 )。- 上文说的记住密码和记住答案等,在配置项前面加上enc则可以配置成密文,防止被人窥屏。
- 如果密码中含有 #等特殊字符,直接配置密码明文可能会导致登录失败,此时则必须使用密文配置。
 brew update brew install trzsz-ssh 3 
- 上文说的
-  运行 tssh --new-host可以在 TUI 界面轻松添加 SSH 配置,并且完成后可以立即登录。
-  运行 tssh --install-trzsz可以将 trzsz (trz/tsz) 安装到服务器上。- 默认安装到 ~/.local/bin/目录,可以通过--install-path /path/to/install指定安装目录。
- 若 --install-path安装目录含有~/,则必须加上单引号,如--install-path '~/path'。
- 若获取 trzsz的最新版本号失败,可以通过--trzsz-version x.x.x参数自行指定。
- 若下载 trzsz的安装包失败,可以自行下载并通过--trzsz-bin-path /path/to/trzsz.tar.gz参数指定。
- 注意:--install-trzsz不支持 Windows 服务器,不支持跳板机( 除非以ProxyJump跳过 )。
 
- 默认安装到 
-  关于修改终端标题,其实无需 tssh就能实现,只要在服务器的 shell 配置文件中(如~/.bashrc)配置:brew update brew install trzsz-ssh 4 - 如果在 ~/.tssh.conf中设置了SetTerminalTitle = Yes,则会在登录后自动设置终端标题,但是服务器上的PROMPT_COMMAND会覆盖tssh设置的标题。
- 在 tssh退出后不会重置为原来的标题,你需要在本地 shell 中设置PROMPT_COMMAND,让它覆盖tssh设置的标题。
 
- 如果在 
故障排除
-  在 Warp 终端,分块 Blocks 的功能需要将 tssh重命名为ssh,推荐建个软链接( 对更新友好 ):brew update brew install trzsz-ssh 5 -  软链后, ssh -V应输出trzsz ssh加版本号,如果不是,说明软链不成功,或者在PATH中openssh的优先级更高,你要软链到另一个地方或者调整PATH的优先级。
-  软链后,要直接使用 ssh,它等价于tssh。如果还是用tssh是不会支持分块 Blocks 功能的。
-  --dragfile参数可能会让 Warp 分块功能失效,请参考前文配置EnableDragFile来启用拖拽功能。
-  拖拽文件或目录进入 Warp 终端后,可能不会立即触发上传,需要多按一次 回车键,才会上传。
 
-  
-  如果你在使用 Windows7 或者旧版本的 Windows10 等,遇到 enable virtual terminal failed的错误。- 可以尝试在 Cygwin、MSYS2 或 Git Bash 内使用 tssh。
 
- 可以尝试在 Cygwin、MSYS2 或 Git Bash 内使用 
-  如果在 ~/.ssh/config中配置了tssh特有的配置项后,标准ssh报错Bad configuration option。- 可以在出错配置项中加上前缀 #!!,标准ssh会将它当作注释,而tssh则会认为它是有效配置之一。
 
- 可以在出错配置项中加上前缀 





 
		 
		 
		 
		

还没有评论,来说两句吧...