Ich frage mich, wie ich JGIT verwenden kann, um eine Verbindung mit Github mit einer angegebenen SSH-Schlüsseldatei (d. H. Eine nicht in ~/.ssh /).Angeben von SSH-Schlüssel für JGIT
Leider bin ich nicht sicher, wie man JschConfigSessionFactory richtig verwendet. Ich habe versucht, in diesem Artikel ein Setup genau wie der Erstellung: Using Keys with JGit to Access a Git Repository Securely
ich git git.push().setRemote(remotePath).call();
jedoch mit rufen, ich bekomme diese Fehlermeldung (spezifische Repository von log weggelassen):
org.eclipse.jgit.api.errors.TransportException: https://github.com/user/repo: not authorized
at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:160)
at gitio.GitInterface.pushToRemote(GitInterface.java:145)
at engine.GitInterfaceTester.main(GitInterfaceTester.java:25)
Caused by: org.eclipse.jgit.errors.TransportException: https://github.com/user/repo: not authorized
at org.eclipse.jgit.transport.TransportHttp.connect(TransportHttp.java:479)
at org.eclipse.jgit.transport.TransportHttp.openPush(TransportHttp.java:396)
at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:154)
at org.eclipse.jgit.transport.Transport.push(Transport.java:1173)
at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:156)
... 2 more
Ich habe bemerkt, dass die benutzerdefinierten überschriebenen Methoden in JschConfigSessionFactory
nicht tatsächlich tatsächlich aufgerufen werden. Das ist mit ziemlicher Sicherheit die Ursache des Problems ... aber ich weiß nicht, warum sie nicht aufgerufen werden; Ich übergebe die Gewohnheit JschConfigSessionFactory
zu unter Verwendung SshSessionFactory.setInstance(sessionFactory);
Weiß jemand, was ich falsch mache?
Ist dieses Beispiel helfen? https://gist.github.com/quidryan/5449155 – VonC