Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ssh-askpass-connect

Windows 自带 OpenSSH(ssh.exe) 下,用密码(askpass 机制)或密钥以非交互方式 SSH 登录远程设备、执行命令、传输文件的 Skill。

专为 Windows 下用使用账号/密码 SSH 连接设备设计:

  • 提供IP、账号/密码直接SSH连接,可执行一次性命令、上传/下载文件
  • Windows下程序开发,自动SSH连接Linux服务器进行编译、部署

特性

  • 密码认证:通过临时 SSH_ASKPASS 脚本非交互传入密码,无需预置密钥
  • 密钥认证:支持 SSH 私钥文件(ed25519 推荐)
  • SCP 文件传输:上传 / 下载 / 递归目录传输
  • 零依赖:仅需 bash + Windows OpenSSH
  • 安全:密码只在本次执行的临时 askpass 脚本中出现,进程结束即删除,绝不落盘

环境要求

  • Windows 10/11 自带 OpenSSH(ssh.exescp.exe 在 PATH 中)
  • bash 环境(Git Bash / WSL 均可)
  • 本 Skill 的 scripts/connect.shscripts/scp.sh

快速开始

下文 <SKILL_DIR> 指本 Skill 目录(即 SKILL.md 所在目录)。

密码认证 · 远程命令

SSHPASS='你的密码' bash "<SKILL_DIR>/scripts/connect.sh" root@192.168.1.10 22 -- 'uptime; df -h'

仅测试连通性(不传命令):

SSHPASS='你的密码' bash "<SKILL_DIR>/scripts/connect.sh" root@192.168.1.10 22

密钥认证

SSHKEY='~/.ssh/id_ed25519' bash "<SKILL_DIR>/scripts/connect.sh" user@192.168.1.10 22 -- 'uptime'

SCP 文件传输

上传:

SSHHOST='192.168.1.10' SSHUSER='root' SSHPASS='你的密码' \
  bash "<SKILL_DIR>/scripts/scp.sh" upload ./config.txt /etc/app/config.txt

下载:

SSHHOST='192.168.1.10' SSHUSER='root' SSHPASS='你的密码' \
  bash "<SKILL_DIR>/scripts/scp.sh" download /var/log/syslog ./logs/

递归传输目录:加 -r 参数即可。

安全模型

  • 明文密码绝不写入记忆文件、本仓库、日志等任何持久化位置(known_hosts 除外)。
  • 密码仅存在于「本次执行的临时 askpass 脚本」,脚本以 mktemp 生成、权限 700,进程退出(trap ... EXIT)即 rm -f 删除。
  • 若使用「设备注册表」(~/.workbuddy/credentials/ssh_devices.json)做免密直连,密码会以明文落盘,启用前必须明确知晓风险并同意。默认行为是每次询问密码,不落盘。

目录结构

ssh-askpass-connect/
├── SKILL.md          # Skill 定义与说明
├── README.md         # 本文件
├── LICENSE           # MIT 许可证
└── scripts/
    ├── connect.sh    # SSH 连接 / 远程命令
    └── scp.sh        # SCP 文件传输

已知坑与规避(已验证)

  1. 老设备 ssh-rsa:已加 -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa
  2. Windows 不喝 stdin 密码:已用 SSH_ASKPASS + SSH_ASKPASS_REQUIRE=force + < /dev/null
  3. 连接卡死:已用 timeout 30(SCP 为 timeout 300)+ ConnectTimeout=10
  4. 首次连接:已加 -o StrictHostKeyChecking=accept-new

许可证

MIT

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages