我正在尝试创建简单的Windows批处理脚本,该脚本将管理与客户端的连接。其中包括一些使用plink.exe
和袜子链的隧道。每个跃点都需要我正在使用pageant.exe
的ssh密钥身份验证。
除了选美部分(我在其中苦苦挣扎)之外,我都根据需要编排了所有内容。遇到的事实:
如果我仅启动pageant.exe
,它将在没有加载任何SSH密钥的情况下启动寻呼代理,脚本将立即继续。然后,我可以运行pageant.exe my_key.ppk
将密钥添加到页面中并提示输入密码,但是脚本也会同时继续,因此脚本将继续plink会失败的部分,因为直到那时用户都不会提供密码。
我一直在寻找选美文档,并发现了一些-l
之类的CLI开关,据说应该列出已加载的密钥,但是在Windows版本上似乎不起作用。似乎Windows版本仅接受.ppk文件形式的参数
我想基本上进行某种“等待”功能,直到用户提供密码。有什么方法可以直接从选页列表中列出已加载的密钥,也可以通过任何通用方法向Windows环境询问SSH密钥吗?
答案 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。