介紹
zssh (Zmodem SSH)是一個程序,用于在使用 ssh 時以交互方式將文件傳輸到遠程計算機。它旨在方便的替代 scp 傳輸文件,而無需打開另一個會話并重新驗證自己。
zssh 是 ssh 的交互式包裝器,用于切換遠程 shell 和文件傳輸之間的 ssh 連接。這是通過在用戶和本地 ssh 進程之間使用另一個 tty/pty 對來實現:在 ssh 連接上插入用戶的 tty(遠程 shell 模式)或另一個進程(文件傳輸模式)。
ztelnet 的行為類似于 zssh,除了使用 telnet 而不是 ssh。它相當于'zssh -s"telnet -8 -E"'。
rz 和 sz 命令通過 zmodem 協議傳輸文件。
安裝
#mac安裝
brew install zssh
#linux安裝
sudo apt-get install zssh
使用
-
遠程連接
同ssh遠程連接方法一致
zssh username@xxx.xxx.x.x
- 上傳文件
cd destination_dir #進入到目的地目錄
輸入crtl+@組合鍵(mac是command+@)切換到zssh
cd orgin_dir #進入源目錄
sz example.txt #上傳文件
exit #退出zssh
- 下載文件
sz 在服務器上準備要下載文件
sz abcde.py
輸入crtl+@組合鍵(mac是command+@)切換到zssh
cd destination_dir #進入到下載目錄
rz #接收下載文件
以下內置函數由 zssh 本身處理:
image.png
-
可選參數
image.png
提示
- 如果啟動了文件傳輸但從未完成
如果看到如下顯示,但是傳輸一直沒有完成:
Bytes Sent: 38144/4610624 BPS:3424 ETA 22:15
or
Bytes Sent: 0/ 513 BPS:0 ETA 00:00 Retry 0: Got ZCA
有可能其中一個系統的 pty/tty 不是 8-bit clean(Linux 是,NetBSD 不是), 使用 rz 的 -e 選項(轉義)應該可 以解決這個問題。
- 傳輸可以用 ^C 中斷
- 如果你卡在 rz/sz 中(例如剛剛運行了 rz,但是又決定不傳輸任何東西),就打了十幾個 ^X 來阻止它。
- 使用 sz -y <files> 覆蓋另一側的文件。
- man sz!