trzsz / trzsz-ssh

trzsz-ssh ( tssh ) is an ssh client designed as a drop-in replacement for the openssh client. It aims to provide complete compatibility with openssh, mirroring all its features, while also offering additional useful features. Such as login prompt, batch login, remember password, automated interaction, trzsz, zmodem(rz/sz), udp mode like mosh, etc.
https://trzsz.github.io/ssh
MIT License
1.76k stars 103 forks source link

Feature request: 命令行参数取代文件选择框 #126

Closed towith closed 3 months ago

towith commented 4 months ago

Feature request: 命令行参数取代文件选择框 直接指定宿主机文件路径, 而不用弹出文件对话框选择 优点: 利于批量自动化 例如powershell @("host1","host2") | foreach {tssh $_ "pwd;trz --localpath d:/somefile.sh"}

lonnywong commented 4 months ago

可以用 scp 来自动化吧?

towith commented 4 months ago

scp好像不支持密码的交互, 要实现的话也不是不行, 就比较麻烦比如expect, autohotkey,配置密钥免密ssh, ansible等之类的, 作为一个命令行工具, 我个人觉得trzsz可以支持0交互更赞 👍

lonnywong commented 4 months ago

按 trzsz 现在的架构不太好实现,trz 运行之后会输出 ::TRZSZ:TRANSFER:R:1.1.7:2068932306000:45249 这样的字符串,然后就开始选文件了,这时 trz 与客户端还没有交互数据,指定的 --localpath 也就没办法提前传给客户端,不好改。

或许,可以基于 tssh 的代码,实现一个 tscp 出来。

towith commented 4 months ago

哦, 原来是这样 "可以基于 tssh 的代码,实现一个 tscp 出来" 那也不错 好的, 无论可不可以, 都谢谢你们提供的好用的终端工具 👍

lonnywong commented 3 months ago

我想到了个新的实现,可以用命令行参数 --upload-file 代替文件选择框。

具体的用法,可以看 README 中,关于 --upload-file 的部分。另外,下载时可通过 --download-path 参数指定保存路径。

v0.1.22 发布前,可以这样安装 go install github.com/trzsz/trzsz-ssh/cmd/tssh@main,安装路径在 ~/go/bin/

注意,当要上传多个文件时,需要多次指定 --upload-file 参数,不支持 --upload-file 后面直接跟通配符指定多个文件。

towith commented 3 months ago

赞, 感谢