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

时间:2018-11-26 15:41:38

标签: windows batch-file ssh plink pageant

我正在尝试创建简单的Windows批处理脚本,该脚本将管理与客户端的连接。其中包括一些使用plink.exe和袜子链的隧道。每个跃点都需要我正在使用pageant.exe的ssh密钥身份验证。

除了选美部分(我在其中苦苦挣扎)之外,我都根据需要编排了所有内容。遇到的事实:

如果我仅启动pageant.exe,它将在没有加载任何SSH密钥的情况下启动寻呼代理,脚本将立即继续。然后,我可以运行pageant.exe my_key.ppk将密钥添加到页面中并提示输入密码,但是脚本也会同时继续,因此脚本将继续plink会失败的部分,因为直到那时用户都不会提供密码。

我一直在寻找选美文档,并发现了一些-l之类的CLI开关,据说应该列出已加载的密钥,但是在Windows版本上似乎不起作用。似乎Windows版本仅接受.ppk文件形式的参数

我想基本上进行某种“等待”功能,直到用户提供密码。有什么方法可以直接从选页列表中列出已加载的密钥,也可以通过任何通用方法向Windows环境询问SSH密钥吗?

1 个答案:

答案 0 :(得分:1)

Pageant具有-c switch,可用于传递加载私钥后要执行的命令:

  

一旦Pageant初始化了自己的程序并加载了其命令行上指定的任何键,就可以安排Pageant启动另一个程序。然后,该程序(也许是PuTTY或使用Plink的WinCVS或任何其他工具)将能够使用Pageant加载的键。

     

您可以通过指定-c选项和命令来完成此操作,如下所示:

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

尽管总的来说,Pageant是一种用于交互使用而非脚本编写的工具。要编写脚本,请使用Plink的-i切换到provide a private key for authentication