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 是一个**独立的可执行文件** — 无需外部运行时依赖,下载即用。