0

我有一些从 TeamCity 运行的测试代码。我的部分测试代码需要 ssh 和 putty。此代码在命令提示符(会话 1)中运行良好,但是当我从 TeamCity(这是一个进程,因此在会话 0 中运行)运行它时,我在测试日志中收到以下警报

服务器主机密钥与 PuTTY 缓存在注册表中的一个不匹配 [snip] 如果您信任此主机,请输入“y”将密钥添加到 PuTTY 的缓存并继续连接。如果您只想进行一次连接,而不将密钥添加到缓存中,请输入“n”。如果您不信任此主机,请按 Return 放弃连接。将密钥存储在缓存中?(是/否)

由于这是在会话 0 中,我无法交互并点击“y”。我无法弄清楚为什么当我从会话 1 第一次运行时点击“y”时存储在注册表中的密钥不会停止出现在会话 0 中的警报。

谁能帮我?谢谢。

4

1 回答 1

0

PuTTY 很可能没有解决方案。

在 OpenSSH 中,您有一组选项可以完全避免主机密钥验证,但缺点是会降低安全级别。

在 Unix 衍生产品上:

-o  StrictHostKeyChecking=no -o  UserKnownHostsFile=/dev/null

我认为在 Windows 中,第二个选项将显示为“ -o UserKnownHostsFile=NULL”。

一种可能的“解决方法”是在第一个连接上手动启动腻子,以便在存储的缓存中获取主机密钥。除非主机密钥更改(通常是由于系统重新安装或只是 SSH 服务器重新安装),否则后续调用将不需要交互。

于 2013-11-05T07:09:37.023 回答