?? go 版 trzsz 發布 v1.1.6,配合 tssh 支持隧道傳輸

來源: 投稿
作者: LonnyWong
2023-10-23 10:21:00

客戶端:https://github.com/trzsz/trzsz-ssh
服務端:https://github.com/trzsz/trzsz-go


安裝方法

  • Ubuntu 可用 apt 安裝

    sudo apt install trzsz
    sudo apt update && sudo apt install software-properties-common
    sudo add-apt-repository ppa:trzsz/ppa && sudo apt update
    
    sudo apt install trzsz
    
  • Debian 可用 apt 安裝

    sudo apt install trzsz
    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 trzsz
    
  • Linux 可用 yum 安裝

    sudo yum install trzsz
    • 國內推薦使用 wlnmp 源,安裝 trzsz 只需要添加 wlnmp 源( 配置 epel 源不是必須的 ),以 CentOS 為例:

      sudo rpm -ivh https://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
      
      sudo yum install trzsz
      
    • 也可使用 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 trzsz
      
  • ArchLinux 可用 yay 安裝

    yay -S trzsz
    yay -Syu
    yay -S trzsz
    
  • MacOS 可用 homebrew 安裝

    brew install trzsz-go
    brew update
    brew install trzsz-go
    
  • Windows 可用 scoop / winget / choco 安裝

    scoop install trzsz / winget install trzsz / choco install trzsz
    scoop install trzsz
    
    winget install trzsz
    
    choco install trzsz
    
  • 用 Go 直接安裝( 要求 go 1.20 以上 )

    go install github.com/trzsz/trzsz-go/cmd/...@latest
    go install github.com/trzsz/trzsz-go/cmd/trz@latest
    go install github.com/trzsz/trzsz-go/cmd/tsz@latest
    go install github.com/trzsz/trzsz-go/cmd/trzsz@latest
    

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

  • 可從 Releases 中直接下載適用的版本

    或者用 Go 編譯( 要求 go 1.20 以上 )
    git clone https://github.com/trzsz/trzsz-go.git
    cd trzsz-go
    make
    sudo make install
    

使用方法

在本地電腦使用

  • 在命令前添加 trzsz,就可以支持 trzsz (trz /tsz) 上傳和下載了,如:

    trzsz bash
    trzsz PowerShell
    trzsz ssh x.x.x.x
    
  • 在命令前添加 trzsz --dragfile,就可以啟用拖拽上傳功能,如:

    trzsz -d ssh x.x.x.x
    trzsz --dragfile ssh x.x.x.x
    

在跳板機上使用

  • 如果在跳板機上使用 tmux,則需要再使用 trzsz --relay ssh 登錄遠程服務器,如:

    trzsz ssh jump_server
    tmux
    trzsz --relay ssh remote_server
    

在服務器上使用

  • 與 lrzsz (rz /sz) 類似,使用 trz 命令上傳文件,使用 tsz /path/to/file 命令下載文件。

  • 有關 trzsz 更詳細的文檔,請查看 https://trzsz.github.io/cn/。

使用建議

  • 為了使用方便,可以設置 alias ,例如 alias ssh="trzsz ssh",又或者 alias ssh="trzsz -d ssh" 支持拖文件上傳。

  • 如果在本地電腦使用 tmux,先不帶 trzsz 運行 tmux,然后再使用 trzsz ssh 登錄遠程服務器。

可配置項

trzsz 使用的配置文件是 ~/.trzsz.conf( Windows 是 C:\Users\your_name\.trzsz.conf )。注意路徑必須包含 / 結尾,如:

DefaultUploadPath =
DefaultDownloadPath = /Users/username/Downloads/
  • 如果 DefaultUploadPath 不為空,上傳選擇文件時會默認打開此目錄。

  • 如果 DefaultDownloadPath 不為空,下載文件時會自動下載到此目錄( 不需要再彈窗選擇路徑 )。

常見問題

  • 如果 MSYS2  Git Bash 遇到錯誤 The handle is invalid。

    •  trzsz 前面加上 winpty 即可,如 winpty trzsz ssh x.x.x.x 這樣登錄服務器。
    • Git Bash 已默認安裝有 winpty,MSYS2 需要手工安裝 pacman -S winpty。
  •  MSYS2  Cygwin 等,不支持直接使用 /usr/bin/ssh 那個 ssh,可能會傳輸失敗。需要使用 Windows 自帶的 OpenSSH。

    • MSYS2 中用法 winpty trzsz /c/Windows/System32/OpenSSH/ssh.exe x.x.x.x。
    • Cygwin 中用法 trzsz "C:\Windows\System32\OpenSSH\ssh.exe" x.x.x.x。
    • ? 推薦使用 trzsz-ssh ( tssh ),tssh 等同于 trzsz ssh。
  • 拖文件或目錄到終端后,沒有自動上傳?

    • 檢查 ssh 登錄時有沒有加上 --dragfile 選項,如 trzsz --dragfile ssh x.x.x.x 。
    • 檢查服務器上有沒有安裝 trzsz,trz 應在某個 PATH 路徑下。
    • 在 Windows 中,檢查標題有沒有管理員三個字,以管理員運行 時可能會由于 UAC 設置的原因導致拖不了文件。
    • 在 Windows Terminal 中,需要將文件或目錄拖到左上角,顯示粘貼文件路徑 時再放開。
    • 在 Windows 的 cmd  PowerShell 中,一次只能拖一個文件或目錄,拖多個也只有鼠標正對著的那個是生效的。

開發指引

想要讓你自己開發的 ssh 客戶端支持 trzsz ?請參考 go ssh client example。

錄屏演示

在 windows 的 cmd 使用示例:


在 Ubuntu 原生終端使用示例:


在 Mac 原生終端拖文件上傳的示例:

展開閱讀全文
點擊引領話題?? 發布并加入討論??
0 評論
1 收藏
分享
返回頂部
頂部
一本久久综合亚洲鲁鲁五月天,无翼乌口工全彩无遮挡H全彩,英语老师解开裙子坐我腿中间