Ssh 如何使用JSch执行严格的主机密钥检查
我正在尝试使用Ssh 如何使用JSch执行严格的主机密钥检查,ssh,jgit,Ssh,Jgit,我正在尝试使用JGit连接到服务器。我可以使用以下设置成功连接 JSch.setConfig("StrictHostKeyChecking", "no"); 问题是我实际上需要严格的主机密钥检查。因此,我将前一行替换为以下内容: JSch.setConfig("StrictHostKeyChecking", "yes"); 但现在它不起作用了。我的证书位于我的主目录中名为.ssh的文件夹中。文件名为id\u rsa和id\u rsa.pub。在服务器(有Linux)中,我有一个名为autho
JGit
连接到服务器。我可以使用以下设置成功连接
JSch.setConfig("StrictHostKeyChecking", "no");
问题是我实际上需要严格的主机密钥检查。因此,我将前一行替换为以下内容:
JSch.setConfig("StrictHostKeyChecking", "yes");
但现在它不起作用了。我的证书位于我的主目录中名为
.ssh
的文件夹中。文件名为id\u rsa
和id\u rsa.pub
。在服务器(有Linux)中,我有一个名为authorized\u keys
的文件,位于~/.ssh
中,该文件的内容与id\u rsa.pub
代码实际上是正常的。问题是你必须做以下事情:
这些操作必须在客户端计算机上执行
1) 在主目录中创建一个名为.ssh
的文件夹(例如C:\Users\John
)
2) 输入新文件夹并使用以下命令使用git bash创建证书
ssh-keygen -t rsa -m PEM
证书是两个名为id\u rsa
和id\u rsa.pub
3) 键入以下命令(始终使用gitbash
):
它将创建一个名为known\u hosts
的文件。因此,最终在客户端的.ssh文件夹中会有3个文件:id\u rsa
、id\u rsa.pub
和已知主机
。
现在转到服务器计算机并执行以下操作
1) 在主目录中创建一个名为.ssh的文件夹(例如~/John
)
2) 进入那里,创建一个名为authorized_keys
的文件,并将文件id_rsa.pub
的内容复制到此新文件中
3) 查找文件etc/ssh/sshd\u config
4) 确保以下两行存在且未注释
PubKeyAuthentication yes
PasswordAuthentication no
5) 保存文件并重新启动sshd
sudo systemctl restart sshd
请将您的问题包括在程序中的所有相关代码中。
sudo systemctl restart sshd