【 用 go 的 ssh 客户端 】tssh 发布 v0.1.6


【 用 go 的 ssh 客户端 】tssh 发布 v0.1.6,解决了 known hosts 的问题,支持更多类型的私钥( 含密码 )。

GitHub:https://github.com/trzsz/trzsz-ssh

Gitee:https://gitee.com/trzsz/tssh


安装方法

客户端安装 trzsz-ssh ( tssh ) 的方法如下( 任选其一 ):

  • Windows 可用 scoop 安装

    scoop bucket add extras
    scoop update
    scoop install tssh
    
  • MacOS 可用 homebrew 安装

    brew update
    brew install trzsz-ssh
    
  • Ubuntu 可用 apt 安装

    sudo 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 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 安装

    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 -Syu
    yay -S tssh
    
  • 用 Go 直接安装( 要求 go 1.20 以上 )

    go install github.com/trzsz/trzsz-ssh/cmd/tssh@latest
    

    安装后,tssh 程序一般位于 ~/go/bin/ 目录下( Windows 一般在 C:\Users\your_name\go\bin\ )。

  • 可从 Releases 中直接下载适用的版本,或者用 Go 编译 ( 要求 go 1.20 以上 )

    git clone https://github.com/trzsz/trzsz-ssh.git
    cd trzsz-ssh
    go build ./cmd/tssh
    

服务器上要安装 trzsz 才能使用 trz / tsz 上传和下载,可任选其一安装: Go 版( ⭐ 推荐 )、Py 版、Js 版。

如果服务器不安装 trzsz,也能用 tssh,只是不使用 trz / tsz 上传和下载而已。

使用方法

~/ 代表 HOME 目录。在 Windows 中,请将下文的 ~/ 替换成 C:\Users\your_name\

  • 在客户端生成密钥对,一般存放在 ~/.ssh/ 下:

    • ssh-keygen -t rsa -b 4096 生成 RSA 的,私钥 ~/.ssh/id_rsa,公钥 ~/.ssh/id_rsa.pub
  • 登录服务器,将公钥( 即前面生成密钥对时 .pub 后缀的文件内容 )追加写入服务器上的 ~/.ssh/authorized_keys 文件中。

    一行代表一个客户端的公钥,注意 ~/.ssh/authorized_keys 要设置正确的权限:

    chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
    
  • 在客户端配置好 ~/.ssh/config 文件,举例:

    Host alias1
    HostName 192.168.0.1
    Port 22
    User your_name
    Host alias2
    HostName 192.168.0.2
    Port 22
    User your_name
     
  • 使用 tssh 命令登录服务器,tssh alias1 命令登录在 ~/.ssh/config  alias1 对应的服务器。

  • 直接执行 tssh 命令( 不带参数 ),可以选择( 搜索 ) ~/.ssh/config 中配置好的服务器并登录。

记住密码

  • 为了兼容标准 ssh ,密码配置项独立放在 ~/.ssh/password 中,其他配置项依然放在 ~/.ssh/config 中。

  • 推荐使用前面密钥认证的方式,密码的安全性弱一些。如果必须要用,建议设置好 ~/.ssh/password 的权限:

    chmod 700 ~/.ssh && chmod 600 ~/.ssh/password
    
  • 下面 ~/.ssh/password 配置 test2 的密码是 123456,其他以 test 开头的密码是 111111

    Host test2
    Password 123456
    
    # ~/.ssh/config 和 ~/.ssh/password 是支持通配符的,tssh 会使用第一个匹配到的值。
    # 这里希望 test2 使用区别于其他 test* 的密码,所以将 test* 放在了 test2 的后面。
    
    Host test*
    Password 111111
    

记住答案

  • 除了私钥和密码,还有一种登录方式,英文叫 keyboard interactive ,是服务器返回一些问题,客户端提供正确的答案就能登录,很多自定义的一次性密码就是利用这种方式实现的。

  • 如果答案是固定不变的,tssh 支持 “记住答案”,也是在 ~/.ssh/password 中进行配置。大部分都是只有一个问题,只要配置 QuestionAnswer1 即可。对于有多个问题的,每个问题答案可按序号进行配置,也可以按问题的 hex 编码进行配置。

  • 使用 tssh --debug 登录,会输出问题的 hex 编码,从而知道该如何使用 hex 编码进行配置。配置举例:

    Host test1
    QuestionAnswer1 答案一
    Host test2
    QuestionAnswer1 答案一
    QuestionAnswer2 答案二
    QuestionAnswer3 答案三
    Host test3
    6e616d653a20 my_name# 其中 `6e616d653a20` 是问题 `name: ` 的 hex 编码
    636f64653a20 my_code# 其中 `636f64653a20` 是问题 `code: ` 的 hex 编码

录屏演示


相關推薦

2023-06-05

端又没有服务器管理功能而苦恼? tssh v0.1.1 已实现 ssh 客户端常用的基本功能( 除了 ssh 端口转发 ),一般人用到的 ssh 功能都已支持,欢迎各位大佬试用。 两大额外功能( 亮点 ): 1 、支持选择( 搜索 )~/.ssh/config 中的

2023-06-19

 tssh,只是不使用 trz / tsz 上传和下载而已。 客户端安装 tssh 的方法如下( 任选其一 ): 用 go 直接安装( 要求 go 1.20 以上 ) go install github.com/trzsz/trzsz-ssh/cmd/tssh@latest 安装后,tssh 程序一般位于 

2023-07-19

Go 实现的 ssh 客户端,发布 v0.1.7 新版本,升级 trzsz ( trz / tsz ) 到 1.1.4 版本,支持断点续传,进一步优化了传输速度和使用体验: 1 、如果传输发生中断,或者传完后文件有修改,再使用 trz -y 上传,或者使用 tsz -y xx

2023-07-24

Go 实现的 ssh 客户端,发布 v0.1.8 新版本,支持批量登录,批量执行指定的命令。 GitHub:https://github.com/trzsz/trzsz-ssh Gitee:https://gitee.com/trzsz/tssh 目前支持在 tmux 和 Windows Terminal 中一次选择多台服务器,批量登

2023-07-05

b.com/trzsz/trzsz-ssh Gitee:https://gitee.com/trzsz/tssh 安装方法 客户端安装 trzsz-ssh ( tssh ) 的方法如下( 任选其一 ): Windows 可用 scoop 安装 scoop bucket add extras scoop update scoop install tssh MacOS 可用 homebrew&nb

2023-08-01

软件简介 支持 trzsz (trz /tsz) 的 ssh 客户端,支持搜索和选择服务器进行批量登录,支持记住密码。 An ssh client that supports trzsz, supports searching and selecting servers for batch login. Website: https://trzsz.github.io/ss

2024-01-16

tsz ):https://github.com/trzsz/trzsz-go 2023 年 5 月,实现 ssh 客户端 背景1: Windows 中的 ConPTY 和 ConHost 存在性能问题,导致 Go 版 trzsz 只有几十 K 的速度。 背景2: 有网友来咨询 trzsz.js 的问题,他用的是 Go [wails](https://github.com/wa

2023-07-18

那个是生效的。 开发指引 想要让你自己开发的 ssh 客户端支持 trzsz ?请参考 go ssh client example。 录屏演示 在 windows 的 cmd 使用示例: 在 Ubuntu 原生终端使用示例: 在 Mac 原生终端拖文件上传的示例:

2023-08-28

与底层技术 >>> tssh v0.1.11 已经发布,支持 trz/tsz 的 ssh 客户端。 此版本更新内容包括: 支持记住 Passphrase 支持 ~/.tssh.conf 配置 支持 ssh-agent 支持更多配置项 详情查看:https://gitee.com/trzsz/tssh/releases/v0.1.11

2022-11-21

本次更新内容: 1. 升级文件服务版本至 1.1.6, 文件服务默认ORM改为Ent, GORM移至gorm分支 2. 优化数据库配置文件,提高代码复用性 3. 更新文件服务文档 4. 错误信息国际化全部移至i18n处理 5. 修复用户下线token过期bug 6. 优化验证

2024-04-12

P 参数即可。 指定出口 IP,HTTP (S)\SOCKS5\SPS\TCP 代理支持客户端用入口 IP 连接过来的,就用入口 IP 作为出口 IP 访问目标网站的功能。如果入口 IP 是内网 IP,出口 IP 不会使用入口 IP 支持限速,HTTP (S)\SOCKS5\SPS\TCP 代理支持限速

2023-01-19

P 参数即可。 指定出口 IP,HTTP (S)\SOCKS5\SPS\TCP 代理支持客户端用入口 IP 连接过来的,就用入口 IP 作为出口 IP 访问目标网站的功能。如果入口 IP 是内网 IP,出口 IP 不会使用入口 IP 支持限速,HTTP (S)\SOCKS5\SPS\TCP 代理支持限速

2023-01-10

P 参数即可。 指定出口 IP,HTTP (S)\SOCKS5\SPS\TCP 代理支持客户端用入口 IP 连接过来的,就用入口 IP 作为出口 IP 访问目标网站的功能。如果入口 IP 是内网 IP,出口 IP 不会使用入口 IP 支持限速,HTTP (S)\SOCKS5\SPS\TCP 代理支持限速

2023-02-10

P 参数即可。 指定出口 IP,HTTP (S)\SOCKS5\SPS\TCP 代理支持客户端用入口 IP 连接过来的,就用入口 IP 作为出口 IP 访问目标网站的功能。如果入口 IP 是内网 IP,出口 IP 不会使用入口 IP 支持限速,HTTP (S)\SOCKS5\SPS\TCP 代理支持限速