我正在使用Jsch(JCraft)库与SSH服务器建立SSH连接,如下所示:
JSch jsch = new JSch();
String user = "****";
String host = "****";
int port = 22;
String privateKey = "***.ppk";//Path to private key(The file is in .ppk format)
try
{
jsch.addIdentity(privateKey);
Session session = jsch.getSession(user, host, port);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
/*file transfer code*/
sftpChannel.disconnect();
session.disconnect();
}
catch (Exception e)
{
e.printStackTrace();
}
SSH连接已成功建立,因为“严格主机密钥检查”已禁用。如果启用,我会收到以下错误:
com.jcraft.jsch.JSchException: UnknownHostKey: ******. RSA key f
is *************
at com.jcraft.jsch.Session.checkHost(Session.java:805)
at com.jcraft.jsch.Session.connect(Session.java:345)
at com.jcraft.jsch.Session.connect(Session.java:183)
我知道我们需要在代码中设置已知主机文件,如下所示:
jsch.setKnownHosts(knownHostsFileName);
我无法通过以下命令生成known_hosts文件:
ssh-keyscan <HOST> > known_hosts
它抛出以下错误:
'ssh-keyscan' is not recognized as an internal or external command,
operable program or batch file.
我只有.ppk格式的公钥和私钥。我没有known_host文件
如何创建known_host文件
为什么ssh keyscan命令抛出错误-无法识别为内部/外部命令?
该文件通常由< code>ssh-keyscan创建,或者由用户连接到ssh主机创建。
您可以通过命令简单地创建它
ssh-keyscan [host]
并保存输出。-H
选项启用散列输出,但我不知道有问题的库是否可以使用它。
请注意,如果没有首先验证主机指纹,known_hosts
文件本身就不太有用。以下警告直接来自ssh keyscan
手册页:
SECURITY
If an ssh_known_hosts file is constructed using ssh-keyscan without veri-
fying the keys, users will be vulnerable to man in the middle attacks.
On the other hand, if the security model allows such a risk, ssh-keyscan
can help in the detection of tampered keyfiles or man in the middle
attacks which have begun after the ssh_known_hosts file was created
ssh-keyscan
是来自Linux的命令 /Unix.为了在Windows上执行它,您需要一个已修改为在Windows上运行的版本。最简单的是安装git-for-windows(下载)并打开Git Bash
。在此控制台中,您可以使用ssh-keyscan
命令。
我搜索了很多,但找不到解决方案。我需要使用java程序将文件从本地windows计算机复制到远程windows计算机。我试过用JSch, 在执行上述代码时,我面临以下错误, 我在远程windows计算机上安装了cygwin。Jsch似乎无法找到windows路径。将文件从windows计算机复制到linux计算机时,相同的代码可以正常工作。 请告诉我上述问题的解决方案,或者是否有其他方法可以在ja
接口生成器文件中未知的窗口类(null),改为创建泛型窗口 我是在升级到Xcode 9.1后才注意到这一点的,但我不确定以前是否有。 这里有一个类似的问题:Xcode6奇怪的bug:接口构建器文件中的未知类 在这两个项目中,窗口都由自定义窗口控制器拥有。我检查了故事板xml,但没有发现任何奇怪的地方。
如何在命令期间将文件从docker容器复制到主机? 作为为我的应用程序构建docker映像的一部分,我正在它内部运行一些测试,并且我希望将测试运行的输出复制到主机(它是一个持续集成服务器)中以进行一些报告。
问题内容: 我尝试构建jar,然后将其复制到另一个文件夹。 但是我找不到一个问题。copyJarToBin任务尝试复制旧的jar。如果我删除项目中的/ build文件夹并运行buildApp()任务,则任务createJar()将生成.jar文件,但copyJarToBin()找不到该.jar文件。 你可以帮帮我吗? 谢谢。 问题答案: 罪魁祸首是您的任务。做的时候 您可以在配置期间使用该方法复制
本文向大家介绍如何在Python中生成非重复随机数?,包括了如何在Python中生成非重复随机数?的使用技巧和注意事项,需要的朋友参考一下 接下来的程序会生成10个介于1到100之间的随机非重复整数。它会在给定的时间间隔内生成一个随机整数,如果先前未添加过该整数,则将其添加到列表中。
问题内容: 在Linux终端中创建文件的最简单方法是什么? 问题答案: 根据您希望文件包含的内容: 对于一个空文件 用于包含某些命令输出的文件。 或(或) 它可以打开现有文件进行编辑,也可以创建并打开一个空文件以输入(如果不存在)