你正在尝试通过将设置StrictHostKeyChecking
为来跳过主机密钥检查no。
但是你必须在检查之前(即在之前)执行此操作session.connect()
。
无论如何,除非你不关心安全性,否则永远不要这样做。主机密钥检查可以保护你免受中间人攻击。
而是设置一个预期的主机密钥,以便JSch对其进行验证。
例如:
JSch.setKNownHosts
提供类似.ssh/kNown_hosts
文件的路径的调用。
要生成.ssh/kNown_hosts-like
文件,可以使用ssh-keyscanOpenSSH
中的命令。如果从* nix
服务器连接,则应该具有可用的命令,只需运行
ssh-keyscan example.com > kNown_hosts
格式如下:
example.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0hVqZOvZ7yWgie9OHdTORJVI5fJJoH1yEGamAd5G3werH0z7e9ybtq1mGUeRkJtea7bzru0ISR0EZ9HIONoGYrDmI7S+BiwpDBUKjva4mAsvzzvsy6Ogy/apkxm6Kbcml8u4wjxaOw3NKzKqeBvR3pc+nQVA+SJUZq8D2XBRd4EDUFXeLzwqwen9G7gSLGB1hJkSuRtGRfOHbLUuCKNR8RV82i3JvlSnAwb3MwN0m3WGdlJA8J+5YAg4e6JgSKrsCObZK7W1R6iuyuH1zA+dtAHyDyYVHB4FnYZPL0hgz2PSb9c+iDEiFcT/lT4/dQ+kRW6DYn66lS8peS8zCJ9CSQ==
并kNown_hosts在你的JSch代码中引用生成的文件。
如果你使用的是Windows,则可以ssh-keyscan
从Win32-OpenSSH
项目或Windows
的Git
获取Windows
版本。
致电JSch.getHostKeyRepository().add()
以提供期望的主机密钥(例如,作为其他凭据的硬编码)。