我部署了Spring云配置服务器以通过ssh连接到git存储库。

spring:
  cloud:
    config:
      server:
        git:
          uri: ssh://[email protected]:2022/ccare/cm-config-data.git
          searchPaths: [preferences, orders]

我已经将SSH密钥(id_rsa.pub)添加到了Git存储中。
我还使用StrictHostKeyChecking no选项添加了/.ssh/config文件。
但是当我访问配置服务器时,我仍然不断收到此错误。
[nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Cannot clone or checkout repository] with root cause

com.jcraft.jsch.JSchException:UnknownHostKey:stash.ops.domain.com。 RSA密钥指纹为39:89:4b:aa:79:fc:01:9f:46:48:5b:b9:6f:17:af:d5
在com.jcraft.jsch.Session.checkHost(Session.java:786)
在com.jcraft.jsch.Session.connect(Session.java:342)
在org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:116)
在org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:136)
在org.eclipse.jgit.transport.TransportGitSsh $ SshFetchConnection。处(TransportGitSsh.java:262)
在org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:161)
在org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:136)
在org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:122)
在org.eclipse.jgit.transport.Transport.fetch(Transport.java:1115)
在org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:130)
在org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:178)
在org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:125)
在org.springframework.cloud.config.server.JGitEnvironmentRepository.cloneToBasedir(JGitEnvironmentRepository.java:265)
在org.springframework.cloud.config.server.JGitEnvironmentRepository.copyRepository(JGitEnvironmentRepository.java:237)

最佳答案

我有确切的问题。我提出的解决方案(我曾经使用过)是一个hack,但是对我有用。只是ssh该服务器

ssh stash.ops.domain.com

您将收到以下提示:
The authenticity of host 'stash.ops.domain.com' can't be established.
RSA key fingerprint is <fingerprint>
Are you sure you want to continue connecting (yes/no)?

如果您说yes,那么stash.ops.domain.com将添加到known_hosts中。
添加后,您将不再收到该错误。

关于spring - Spring 配置服务器git ssh unknownhostkey,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37595707/

10-14 05:32