跳转至

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


社区