我编写了一个简单的自动化过程,需要通过 SSH 将一些文件从 linux 服务器复制到 windows。这可以使用腻子来完成。
SSH 作为协议的一部分,会验证主机的身份,如果不知道是否正确,会提示您接受主机的身份。当我使用 putty 手动连接 linux 服务器时,它不会提示任何信息来接受主机的身份。但是一旦我把这个自动化过程作为计划工作放到 Hudson 中。确切的信息是:
服务器的主机密钥未缓存在注册表中。您无法保证服务器就是您认为的计算机。服务器的 rsa2 密钥指纹为:ssh-rsa 1024 cc:78:13:a3:68:a6:59:7e:b8:23:2d:13:3e:66:9b:b9 如果信任此主机,请输入“ y" 将密钥添加到 PuTTY 的缓存中并继续连接。如果您只想进行一次连接,而不将密钥添加到缓存中,请输入“n”。如果您不信任此主机,请按 Return 放弃连接。将密钥存储在缓存中?(y/n) 已放弃连接。
通常你会在这里点击“Y”,假设主机密钥是正确的,以便在将来的连接中存储它。此存储进入 HKEY_CURRENT_USER\Software\SimonTatham\Putty\SshHostKeys 下的注册表
但不幸的是,在 Hudson 中运行的自动化进程无法通过点击“Y”将主机密钥存储在 putty 缓存中进行交互。而且我无法通过简单地在 dos 命令下运行自动化过程来重现该问题。
有谁知道如何解决这个问题?