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

Spring Cloud Config无法使用ssh密钥克隆私有bitbucket存储库

卞俊贤
2023-03-14

我在Linux(arch)上,试图使用ssh密钥在本教程之后使用私有bitbucket git存储库配置Spring Cloud Config,但我一直收到错误:

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: Auth fail

现在,根据教程,它应该工作:

如果您不使用HTTPS和用户凭据,SSH也应该在您将密钥存储在默认目录(~/. ssh)中并且uri指向SSH位置时开箱即用,例如"git@github.com:配置/云-配置”。重要的是~/. ssh/known_hosts中的所有键都采用“ssh-rsa”格式。不支持新的"ecdsa-sha2-nistp256"格式。使用JGit访问存储库,因此您在其中找到的任何留档都应该适用。HTTPS代理设置可以在~/. git/config中设置,或者通过系统属性(-Dhttps.proxyHost和-Dhttps.proxyPort)以与任何其他JVM进程相同的方式设置。

我在~/中有一个私有ssh密钥。名为bitbucket rsa的ssh文件夹,使用命令ssh keygen-t rsa-b4096-C“my”创建-email@provider.com“。公钥被正确地添加到了Bitbucket中,因为我可以从命令行中克隆、拉取和推取存储库,不会有任何问题。私钥已添加到ssh代理和bitbucket中。org存在于已知的\u hosts文件中。

下面是配置服务项目中的bootstrap.yml:

spring:
  application:
    name: config-service
  cloud:
    config:
      server:
        git:
          uri: "git@bitbucket.org:TarekSaid/my-private-repo.git"
server:
  port: 8888

使用带有用户名和密码的https是可行的,但我仍然更喜欢使用ssh密钥,我如何才能使其工作?

共有1个答案

终逸仙
2023-03-14

终于成功了!

这个问题:如何在SpringCloudConfig中使用自定义ssh密钥位置为我指明了正确的方向。我调试JschConfigSessionFactory类,发现当未提供用户名和密码时,它会从~/中的默认配置文件获取配置。ssh/config

因此,我所要做的就是将以下内容添加到我的~/. ssh/config文件中:

Host bitbucket.org
  User TarekSaid
  Hostname bitbucket.org
  PreferredAuthentications publickey
  IdentitiesOnly yes
  IdentityFile ~/.ssh/bitbucket_rsa

现在它起作用了。

 类似资料:
  • 我别无选择,我必须使用git clone与ssh,所以在那之后,当我使用作曲家安装,它将下载一些依赖使用git clone ssh从比特桶当我尝试运行git clone使用SSH, 我得到这个输出 我不知道从哪里得到RSA密钥指纹SHA256: zzXQOXSRBEiUtuE8AikJYKwbHaxvSc0ojez9YXaGp1A当使用命令行ssh-keygen生成私钥和公钥时,我得到了RSA密钥

  • 我使用jenikins管道作为代码来克隆一个git项目,这个项目位于私有的比特桶存储库(stash存储库)中。 “MyID”是凭证ID,并且我的用户名和密码正确。我将凭证保存在jenkins的全局凭证功能中。但是我在构建jenkins任务时遇到了这个错误。 在我的mac机器下我paulrda帐户我可以成功克隆我的项目使用jenkins管道脚本,但当我改变到另一个帐户和运行jenkins我得到这个错

  • 问题内容: 我真的很坚持这一点。我在哈德森(Hudson)创建了一个工作,并以与其他工作相同的方式进行了配置。我的项目和构建交付物存在于Git中。但是每次我尝试构建它时,都会出现以下错误: 在其他线程中,有人建议通过以jenkins用户身份登录来创建不同的私钥-公钥对,但我什至不知道如何在终端中执行此操作。我的意思是我知道如何使用“ sudo”命令以不同的用户身份登录,但我不认为有人建议使用sud

  • 问题内容: 我无法让Jenkins通过SSH在BitBucket上克隆git存储库。出现以下消息失败: 采取的步骤 创建一个SSH密钥对 将公共密钥添加为BitBucket上存储库的部署密钥 在Jenkins Credentials Manager插件中安装SSH密钥和用户名(尝试过’git’和我的BB帐户名) 尝试使用URL的形式在构建中克隆存储库 我也尝试过不使用凭据管理器并手动将密钥安装在中

  • 我正在尝试连接到我的VPS上托管的gerrit。我正在使用Git Bash for windows。我在GitBash中使用SSH-keygen生成了SSH密钥,并在gerrit服务器上添加了密钥。当我运行ssh时-p 29418 但当我通过运行以下命令克隆存储库时 我在Git Bash终端中看到以下错误 我无法理解正在发生什么以及如何在我的机器中成功克隆我的项目。有谁能在这件事上帮助我吗? 更新

  • 我一直在编写bash脚本来使用SSH克隆私有Github存储库。需要遵循步骤- 使用SSH-keygen-t rsa-b 4096-C“您的电子邮件”生成SSH密钥 如何在bash脚本中自动化步骤3。任何帮助都将不胜感激。