win-sshpass¶
win-sshpass — 跨平台 sshpass 實作:密碼/金鑰/ssh-agent SSH 登入、互動式 Shell、SFTP/SCP/Rsync 檔案傳輸、連接埠轉送 (-L/-R)、SOCKS5/SOCKS4/HTTP 代理通道、AI 代理 JSON 輸出、斷點續傳、檔案雜湊校驗、金鑰產生,以及可重複使用的 Go SDK。
功能特性¶
- SSH 與 Shell — 密碼或私鑰認證、遠端命令執行、互動式 Shell 原始終端模式(正確回顯、Ctrl+C、vim/top 支援、動態視窗大小調整)。
- 檔案傳輸 — SFTP 上傳/下載帶進度條、SCP 風格與 Rsync 風格傳輸語法、多檔案支援、遞迴目錄上傳。
- Shell 內 rz/sz — 在互動式 Shell 中直接使用
rz/sz命令 — 遠端伺服器無需安裝任何軟體;傳輸透過 SFTP 進行。 - 金鑰產生 — 內建 SSH 金鑰對產生(Ed25519 和 RSA),無需 ssh-keygen。透過 SSH 部署公鑰實現免密碼登入。
- 代理通道 — 透過 SOCKS5(含認證)、SOCKS4、SOCKS4A、HTTP CONNECT 和 HTTPS CONNECT 代理通道化 SSH 連線。
- 連接埠轉送 — 本機(
-L)和遠端(-R)TCP 連接埠轉送,透過 SSH 隧道傳輸,提供ForwarderSDK API 供程式化使用。 - SSH Agent 與 JSON 模式 — 自動檢測並使用本機 ssh-agent 進行認證,支援 agent 轉送(
-A)。結構化 JSON 輸出(-json)適用於 AI 代理和自動化。 - 斷點續傳 — 使用
-resume標誌從中斷處恢復 SFTP 上傳/下載。 - 檔案雜湊與校驗 — 計算並校驗本地檔案校驗和(MD5、SHA-1、SHA-256、SHA-512)— 無需 SSH 連線。
- 可重複使用 Go SDK — 匯入
package sshpass,將 SSH/SFTP/Shell 嵌入你自己的應用,支援注入 I/O、進度回呼,零 UI 依賴。
30 秒快速開始¶
# 透過 WinGet 安裝
winget install chuccp.win-sshpass
# 或透過 Scoop 安裝
scoop bucket add chuccp https://github.com/chuccp/scoop-bucket
scoop install win-sshpass
# 使用密碼登入並執行命令
win-sshpass -p 'password' ssh user@example.com 'whoami'
# 上傳檔案
win-sshpass -h example.com -p 'password' -local file.txt -remote /tmp/file.txt
# 開啟互動式 Shell
win-sshpass -p 'password' ssh user@host
# 產生 SSH 金鑰對
win-sshpass keygen
快速導覽¶
| 安裝 | 快速開始 | SSH 連線 |
| 檔案傳輸 | 互動式 Shell | SCP 與 Rsync |
| 設定檔 | Go SDK | 最佳實踐 |
| 更新日誌 |
依賴¶
| 依賴 | 用途 |
|---|---|
golang.org/x/crypto/ssh |
SSH 協定實作 |
github.com/pkg/sftp |
SFTP 檔案傳輸 |
github.com/schollz/progressbar/v3 |
CLI 進度條(僅 CLI) |
github.com/ncruces/zenity |
rz/sz 檔案對話框(僅 CLI,可選) |
win-sshpass 是一個**獨立的可執行檔** — 無需外部執行時依賴,下載即用。