我有一个Java Servlet应用程序,它使用JSch从我们的SAN到Servlet应用程序的SFTP文档,一切运行良好。但是,它在Windows上运行并且为了实现这一点,我们必须找到当我们第一次从开发机器连接到SAN时创建的“主机密钥指纹”,并将其存储在文本文件中,然后让JSch指向此文件如下;
jsch.setKnownHosts("C:\\path\\to\\file\\fingerprintfilename.txt");
是否可以将主机密钥指纹存储在数据库中?然后我希望使用Hibernate来检索setKnownHosts命令的指纹。
答案 0 :(得分:0)
我之前没有这样做,但它应该是可能的。您可以使用方法setKnownHosts(InputStream)
,而不必从从DB获取的数据创建临时文件。也许您必须在getBytes(Charset)
方法中使用charset才能使其正常工作。或者您可以直接将其存储为BLOB并使用字节。
InputStream is = new ByteArrayInputStream("knownh hosts from the file".getBytes());
jsch.setKnownHosts(is);