UnknownHostKey exception while accessing GitHub reliably

I use jgit to securely access storage on GitHub. I did the following to create keys for secure communication between GitHub and my client code.

  • Key pair generated:

    ssh-keygen -t rsa 
  • Added public key to GitHub account with account settings → SSH keys → add SSH key

  • Added private key generated in step 1 to the local host with:

     ssh-add id_rsa 

After that, when I try to access GitHub and create a clone, I still get the following error:

 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) 

This is the code I used:

  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(); } 

Please let me know this problem here and what should I do to fix it.

Thanks.

+4
source share
1 answer

This is because you don't have an entry for github in ~/.ssh/known_hosts , and JSch used in jgit defaults to reject the session in this case. See this question for solutions: com.jcraft.jsch.JSchException: UnknownHostKey

To set the ssh session property, you need to create a factory session for jgit:

 SshSessionFactory.setInstance(new JschConfigSessionFactory() { public void configure(Host hc, Session session) { session.setConfig("StrictHostKeyChecking", "no"); } }) 

or add StrictHostKeyChecking=no to ~/.ssh/config

+12
source

Source: https://habr.com/ru/post/1446200/


All Articles