如何在 Windows 中列出加载的 SSH 密钥(选美)

How to list loaded SSH keys in Windows (pageant)

我正在尝试创建简单的 Windows 批处理脚本来管理与客户端的连接。这包括一些使用 plink.exe 和袜子链的隧道。每个跃点都需要我使用 pageant.exe.

的 ssh 密钥身份验证

我根据需要编写了每件作品,除了选美部分,我在那里挣扎。遇到的事实:

如果我只启动 pageant.exe 它将启动选美代理而不加载任何 SSH 密钥并且脚本将立即继续。然后我可以 运行 pageant.exe my_key.ppk 将密钥添加到 pageant 中,系统会提示输入密码,但是脚本也会同时继续,因此脚本将继续 plink 部分,这将失败,因为用户不会提供密码到那个时候。

我一直在研究选美文档,发现一些 CLI 开关,如 -l,据说应该列出加载的密钥,但似乎不适用于 Windows 版本。似乎 windows 版本只接受 .ppk 文件形式的参数

我基本上想做一些 "wait" 函数,直到用户提供密码。有什么方法可以直接从选美中列出加载的密钥,也可以使用任何通用方法向 Windows 环境询问 SSH 密钥?

Pageant 有 -c switch,你可以用它来传递一个命令,在加载私钥后执行:

You can arrange for Pageant to start another program once it has initialised itself and loaded any keys specified on its command line. This program (perhaps a PuTTY, or a WinCVS making use of Plink, or whatever) will then be able to use the keys Pageant has loaded.

You do this by specifying the -c option followed by the command, like this:

C:\PuTTY\pageant.exe d:\main.ppk -c C:\PuTTY\putty.exe

尽管总的来说,Pageant 是一种用于交互使用的工具,而不是用于脚本编写的工具。对于脚本,使用 Plink 的 -i 开关到