Plink 如何解析会话名称?

Plink 如何解析会话名称?

如果调用 Plink 时使用的参数可能是主机名或已保存的 PuTTY 会话,那么如何解析它?

例如,假设我保存了一个名为“192.168.4.4”的PuTTY会话。以下操作会调用保存的会话吗?
plink [email protected]

答案1

快速回答:在该示例中,Plink 将使用 PuTTY 会话。会话配置将添加到 Plink 参数中,并可能覆盖这些参数。
建议:避免使用可能与主机名混淆的 PuTTY 会话名称。


以下是更详细的解释。我从测试中推断出这些 Plink 解析规则。

  1. 如果-load使用该选项,则加载已保存的会话,不要在参数列表中查找主机名,然后跳至步骤 5。
  2. HOST=主机名参数(来自参数列表)。
  3. 如果HOST包含@,则在最后进行拆分@。USER=第一部分,HOST=最后一部分。
  4. 如果 HOST 与已保存的 PuTTY 会话的名称匹配,则从该会话加载参数。如果该会话有用户名,则覆盖 USER 中的当前值。
  5. 解析剩余参数,覆盖当前值。这包括-l用户和-issh 用户密钥。

以下是已保存会话如何导致问题的示例。假设这是一个已保存的 PuTTY 会话:

如果你使用 调用 Plink ,它实际上将使用以下内容:plink [email protected]

  • 主机:192.168.5.5(来自已保存的会话)
  • 用户:用户2(保存的会话值 user2 覆盖用户1在论证中)
  • 私钥:key.ppk(来自保存的会话)

注 1:这是用户名的优先顺序:(1)-l选项,(2)已保存的会话,(3)附加到主机参数@

注 2:PuTTY 将其会话保存在 Windows 注册表中。(Computer\HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\Sessions)

-load注 3:Plink 还允许您使用选项 或(已弃用)调用已保存的会话@session。这些内容在PuTTY 文档

注 4:我使用的是 PuTTY 版本 0.71,64 位 x86 Windows。最新版本是 0.78。

注 5:使用已保存会话中的密钥对我来说是可行的,但其他人报告了此问题: https://stackoverflow.com/questions/17689583/putty-connects-but-key-refused-when-using-plink

相关内容