当Pageant完成加载SSH密钥时运行批处理文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当Pageant完成加载SSH密钥时运行批处理文件相关的知识,希望对你有一定的参考价值。

我写了两个批处理文件 - 一个用于启动Pageant并加载我的密钥,另一个用于将一些文件ssh到远程服务器上。单独地,脚本完美地运行。我试图将它们组合成一个批处理文件,但我无法让它工作。

这是脚本 - 真的只有一行。

要启动Pageant并加载密钥:

start E:PuTTYpageant.exe E:Keyspriv.ppk

exit

要使用pscp:

pscp F:websitefoobarsrc* foo@178.128.10.35:/var/www/html

问题是第一个脚本启动了密码提示。如果我完成这个,然后启动下一个脚本,一切都很完美。但我无法将这两个脚本组合成一个脚本,其中第二个命令在第一个命令完成之后运行。我该如何创建一个这样做的批处理文件?

答案

你很难在批处理文件中解决这个问题。 Pageant是GUI应用程序。它几乎不能以某种方式向批处理文件发出信号表明它已完成加载密钥。

出于这个原因,Pageant has -c switch,使其在加载密钥后运行指定的程序/批处理文件:

您可以安排Pageant在初始化自身并加载其命令行中指定的任何键后启动另一个程序。这个程序(可能是PuTTY,或使用Plink的WinCVS,或其他)将能够使用Pageant已加载的键。

您可以通过指定-c选项后跟命令来执行此操作,如下所示:

C:PuTTYpageant.exe d:main.ppk -c C:PuTTYputty.exe

所以这应该是你想要的:

start E:PuTTYpageant.exe E:Keyspriv.ppk -c C:pathyour_scp_batch.bat

以上是关于当Pageant完成加载SSH密钥时运行批处理文件的主要内容,如果未能解决你的问题,请参考以下文章

启动 Pageant SSH-Agent 并加载文件夹中的所有密钥

Git Bash 和 Pageant 没有使用密钥

git小乌龟使用教程

git小乌龟使用教程 快来看看

来自Windows服务的Plink无法找到Pageant

Git使用小乌龟