2016-01-11 6 views
2

Я использую JGit для подключения к удаленному репозиторию Git. Я попытался сделать это так же.JGit - ssh connectivity

public class Main{ 
    public static void main(String args[]) throws Exception{ 
     JschConfigSessionFactory sshSessionFactory = new JschConfigSessionFactory() { 
       @Override 
       protected void configure(Host host, Session session) { 
       session.setPassword("XXXX"); 
       } 
      }; 

      String REMOTE_URL="ssh://[email protected]/test.git"; 
      CloneCommand cloneCommand = Git.cloneRepository(); 
      cloneCommand.setURI("ssh://[email protected]/test.git"); 
      cloneCommand.setTransportConfigCallback(new TransportConfigCallback() { 
       @Override 
       public void configure(Transport transport) { 
       SshTransport sshTransport = (SshTransport)transport; 
       sshTransport.setSshSessionFactory(sshSessionFactory); 
       } 
      }); 

      System.out.println("Listing remote repository " + REMOTE_URL); 
      Collection<Ref> refs = Git.lsRemoteRepository() 
        .setHeads(true) 
        .setTags(true) 
        .setRemote(REMOTE_URL) 
        .call(); 

      for (Ref ref : refs) { 
       System.out.println("Ref: " + ref); 
      } 
    } 
} 

ОШИБКА:

Listing remote repository ssh://[email protected]/test.git 
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 
Exception in thread "main" org.eclipse.jgit.api.errors.TransportException: ssh://[email protected]/test.git: UnknownHostKey: url. RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX 
    at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:223) 
    at org.eclipse.jgit.api.LsRemoteCommand.call(LsRemoteCommand.java:159) 
    at Jgit.Jgit.Main.main(Main.java:94) 
Caused by: org.eclipse.jgit.errors.TransportException: ssh://[email protected]/test.git: UnknownHostKey: url. RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX 
    at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:159) 
    at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:136) 
    at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:262) 
    at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:161) 
    at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:202) 
    ... 2 more 
Caused by: com.jcraft.jsch.JSchException: UnknownHostKey: ssh://[email protected]/test.git: UnknownHostKey: url. RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX 
    at com.jcraft.jsch.Session.checkHost(Session.java:797) 
    at com.jcraft.jsch.Session.connect(Session.java:342) 
    at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:116) 
    ... 6 more 

Я посмотрел через Интернет; и было установлено, что ниже необходимо добавить:

com.jcraft.jsch.JSch.setConfig ("StrictHostKeyChecking", "no"); 

Но, где поместить его в фрагмент кода. Есть ли доступный фрагмент кода рабочего кода.

+0

Вы пытались изменить параметр проверки хоста в своей реализации 'JschConfigSessionFactory', то есть' session.setConfig («StrictHostKeyChecking», «no»); '? –

+0

Привет, Rudiger, я поставил 'session.setconfig (« StrictHostKeyChecking »,« no »),« ошибка ssh ключа исчезла. Я получаю сообщение об ошибке «Auth Error» – shankar

+0

Привет, Rudiger, пожалуйста, найдите код/​​исследование ниже – shankar

ответ

0

Вы можете вызвать setConfig метод ("", "") с помощью объекта Session, как показано ниже: -

JSch jsch = new JSch(); 
Session session = jsch.getSession(username, hostname, 22); 
session.setConfig("StrictHostKeyChecking", "no"); 
session.setPassword(password); 
session.connect(); 

Надежда, что помогает.