go ssh2,[ 用 go 的 ssh 客户端 ]tssh 发布 v0.1.6

科技资讯 投稿 5500 0 评论

go ssh2,【 用 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 编码

录屏演示

爱奇艺客户端“白嫖”电视机,后台满速上传 美国将限制中国使用亚马逊、微软等提供训练 AI 模型的云服务 2023 年收入最高的技术岗位 资金严重短缺,又一流行开源项目宣布停止功能开发 LeaferJS 发布:开源、性能强悍的 2D 图形库 deepin 采用 Asahi Linux 适配 Apple M1 Threads 注册量已破三千万,后端基于 CPython 深度“魔改” Visual Studio Code 1.80 发布,支持终端图片功能 TIOBE 7 月榜单:C++ 即将超越 C,JavaScript 进入 Top6 ChatGPT 流量下降 10%

编程笔记 » go ssh2,[ 用 go 的 ssh 客户端 ]tssh 发布 v0.1.6

赞同 (25) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽