当前位置: 首页 > 知识库问答 >
问题:

SpringCloud/Jgit/Github使用SSH失败

涂浩皛
2023-03-14
  • Windows 10 Pro x64
  • JDK 11.0.6
  • sping-lowd-config-server 2.2.2.发布

我正在设置Spring Cloud Config服务器。在文件系统后端工作正常。工程罚款与https/基本认证github后端。现在我正试图为SSH设置它,这样我就不必把我的用户名和密码放在配置文件中。

据我所知,SpringCloudConfig/jgit将使用所有默认SSH设置,对吗?我已经做了以下工作:

>

  • ssh-keygen-m PEM-t rsa-b 4096-C"xxx@xxx.net"--获取了所有默认文件和NO密码。
  • 打开c:\用户\xxx.ssh\id_rsa.pub,全部选中,c

    spring.cloud.config.server.git.uri=git@github.com: xxx/Config.git

    spring.cloud.config.server.git.clone-开始=真

    Spring云配置。服务器吉特。严格主机密钥检查=false

    Spring云配置。服务器吉特。跳过ssl验证=true

    这导致:

    Caused by: com.jcraft.jsch.JSchException: Auth fail
        at com.jcraft.jsch.Session.connect(Session.java:519) ~[jsch-0.1.54.jar:na]
        at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:146) ~[org.eclipse.jgit-5.1.3.201810200350-r.jar:5.1.3.201810200350-r]
        ... 31 common frames omitted
    

    为什么我的认证失败了?

  • 共有1个答案

    唐信瑞
    2023-03-14

    一个可能的原因是服务器以管理员身份运行,而不是以常规用户帐户运行,这意味着它找不到%USERPROFILE%\id\u rsa

    OP大锤在评论中确认:

    jgit反对Windows上的HOMEDRIVEHOMEPATH
    我的公司将这些重新映射到P:驱动器(尽管它没有重新映射USERPROFILE)。
    openssh工具(和git本身)反对USERPROFILE

    这意味着Jsch需要。sshinP:\

    另一个原因是私钥的格式(请尝试使用使用旧OpenSSH格式生成的私钥进行测试

    最后,仔细检查使用的URI

    在研究了jgitapi之后,我解决了这个问题
    Spring云配置文档中的URI不正确。文档中列出了要使用的格式

    git@host:port/repo1.git
    

    应该是这样

    ssh://git@host:port/repo1.git
    

    所以在我的例子中,一旦我将其更改为ssh://git@mygit: 2222/secops/secrets.git

    (您不需要端口2222,只需使用'/'而不是'')

     类似资料:
    • 我生成了一个没有密码的SSH密钥对,并将公钥添加到GitHub。 连接 成功,但当我重命名密钥时,它失败了。 但是当我想推送我的更改时,它仍然会询问我的用户名和密码组合。 有没有办法在没有密码的情况下推送?

    • 我得到权限拒绝(公钥)。在Windows 7 x64上 我所做的是: 1)也更新了我的git openSSH 2) 使用ssh keygen生成的密钥-t rsa-b 4096-C“myemail@gmailcom" 3) 把它们命名为“hub”,所以我有hub-hub。酒吧。ssh文件夹 4) 运行ssh代理 5) 运行ssh代理sh-c“ssh add”/hub’it said identit

    • 这里的问题是,URL 被重定向,这在 JGit 中不处理。没有相同的错误报告,并且还提到它们已得到解决,但我仍然面临此问题。如果我做错了什么,请告诉我。 代码片段 运行代码后出现异常 更改以下代码后 例外 详情: 使用以下 JGit 版本 4.8.0.201706111038-r 也尝试了4.4.x.xxxxx版本

    • 我正在尝试设置一个SpringCloudConfig服务器,该服务器使用ssh私钥的自定义位置。我需要为密钥指定自定义位置的原因是,运行应用程序的用户没有主目录。。所以我没有办法使用默认的我的密钥的目录。我知道可以选择创建一个只读帐户,并在配置中提供用户/密码,但ssh方式更干净 有什么方法可以设置这个吗?

    • 我尝试遵循:在github上托管Maven存储库 我的POM.xml 我得到了以下错误: ===========================================================================================================================================================

    • 本文向大家介绍SpringCloud Eureka的使用教程,包括了SpringCloud Eureka的使用教程的使用技巧和注意事项,需要的朋友参考一下 什么是Eureka Eureka是Netfilx开源的一个用来实现微服务的注册与发现的组件。它包含Server和Client两部分。 为什么要有Eureka 例如目前有两个服务分别为服务A,服务B,我们可以在服务A调用服务B的接口地址完成调用,