如何使用JSch执行严格的主机密钥检查

问题描述 投票:0回答:1

我正在尝试使用JGit连接到服务器。我可以使用以下设置成功连接

JSch.setConfig("StrictHostKeyChecking", "no");

问题是,我实际上需要严格的主机密钥检查。因此,我用以下内容替换了前一行:

JSch.setConfig("StrictHostKeyChecking", "yes");

但是现在不起作用。我的证书位于位于主目录中名为.ssh的文件夹中。文件的名称为id_rsaid_rsa.pub。在服务器(具有Linux)中,我有一个名为authorized_keys的文件,位于~/.ssh中,该文件的内容与id_rsa.pub相同。

ssh jgit
1个回答
0
投票

代码实际上还可以。问题是您必须执行以下操作:

这些操作必须在您的客户端计算机上执行。

1)在主目录中创建一个名为.ssh的文件夹(例如C:\Users\John

2)输入新文件夹并使用git bash通过以下命令创建证书

ssh-keygen -t rsa -m PEM

证书是名为id_rsaid_rsa.pub的2个文件>

3)键入以下命令(始终使用git bash):

ssh-keyscan -t rsa ip_address_of_your_server >> ~/.ssh/known_hosts

它将创建一个名为known_hosts的文件。因此,最终在客户端的.ssh文件夹中将有3个文件:id_rsaid_rsa.pubknown_hosts。现在转到您的服务器计算机并执行以下操作

1)在主目录中创建一个名为.ssh的文件夹(例如~/John

2)在此处输入并创建一个名为authorized_keys的文件,并将文件id_rsa.pub的内容复制到此新文件中

3)查找文件etc/ssh/sshd_config

4)确保存在以下两行,并且未对其进行注释

PubKeyAuthentication yes
PasswordAuthentication no

5)保存文件并重新启动sshd

sudo systemctl restart sshd
© www.soinside.com 2019 - 2024. All rights reserved.