我正在使用jgit安全地访问
GitHub中的存储库.我做了以下操作来生成GitHub和我的客户端代码之间的安全通信密钥.
>生成密钥对:
ssh-keygen -t rsa
>使用帐户设置 – >向GitHub帐户添加了公钥. SSH密钥 – >添加SSH密钥
>将步骤1中生成的私钥添加到本地主机:
ssh-add id_rsa
执行此操作后,当我尝试访问GitHub并进行克隆时,我仍然会收到以下错误:
org.eclipse.jgit.api.errors.TransportException: git@github.com:test/test_repo.git: UnkNownHostKey: github.com. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:137) at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:178) at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:125)
这是我使用的代码:
String localPath,remotePath; Repository localRepo; Git git; localPath = <path_to_local_repository>; remotePath = "git@github.com:test/test_repo.git"; try { localRepo = new FileRepository(localPath + "/.git"); } catch (IOException e) { e.printstacktrace(); } git = new Git(localRepo); CloneCommand cloneCmd = git.cloneRepository(). setURI(remotePath). setDirectory(new File(localPath)); try { cloneCmd.call(); } catch (GitAPIException e) { log.error("git clone operation Failed"); e.printstacktrace(); }
请告诉我这里的问题,我该怎么做才能纠正它.
谢谢.
解决方法
之所以发生这种情况,是因为〜/ .ssh / kNown_hosts中没有github的条目,而jgit中使用的JSch默认拒绝会话.有关解决方案,请参阅此问题:
com.jcraft.jsch.JSchException: UnknownHostKey
要设置ssh会话属性,需要为jgit创建会话工厂:
SshSessionFactory.setInstance(new JschConfigSessionFactory() { public void configure(Host hc,Session session) { session.setConfig("StrictHostKeyChecking","no"); } })
原文地址:https://www.jb51.cc/java/126754.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。