我想知道如何使用jgit使用指定的ssh密钥文件连接到
github(即不在〜/ .ssh /中).
不幸的是,我不确定如何正确使用JschConfigSessionFactory.我尝试创建一个与本文中的设置类似的设置:Using Keys with JGit to Access a Git Repository Securely
我使用git.push()调用git.setRemote(remotePath).call();但是,我收到此错误(日志中省略了特定的存储库):
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
我注意到JschConfigSessionFactory中的自定义覆盖方法实际上并未实际调用过.这几乎肯定是问题的原因……但不知道为什么不调用它们;我使用SshSessionFactory.setInstance(sessionFactory)将自定义JschConfigSessionFactory传递给SshSessionFactory;
有人知道我做错了什么吗?