git操作:load pubkey “~/.ssh/id_rsa“: invalid format

这篇具有很好参考价值的文章主要介绍了git操作:load pubkey “~/.ssh/id_rsa“: invalid format。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:在docker内操作git,公钥私钥需要使用宿主机的(可以理解为多台服务器共用一个ssh密钥 ),由于远程仓库公钥,我们这边只能配置一个,所有docker项目就必须使用宿主机上的ssh密钥。

在此说一下,如果远程加了ip白名单,只能宿主机ip访问远程仓库,但你想在宿主机上使用docker,那就可以考虑docker网关使用host方式,即docker与宿主机共享ip

第一步先配置docker,配置好git运行环境,然后将宿主机的~/.ssh 映射到目标容器的~/.ssh目录,且已经配置好~/.gitconfig,username和useremail和宿主机保持一致。宿主机上~/.ssh下存在id_rsa 和 id_rsa.pub、authorized_keys、config文件,宿主机上执行git操作一切正常。

然后在docker中执行git clone、git pull等命令都会出现报错,如下:

load pubkey "~/.ssh/id_rsa": invalid format

虽然出现这个报错,但是不影响运行结果--代码可以克隆、拉取成功。

但我这里的git命令需要在PHP代码中执行,使用PHP的exec函数来执行git操作,所以有任何报错都会导致exec输出的结果失败(即便想要的git操作已经成功了)。这样就没办法在代码中判断执行结果是成功还是失败了,所以必须去除这个烦人的报错。(在PHP中使用exec函数,由于web服务器默认的用户是www-data,可能没有权限去执行一些命令,可以改下)

然后我反复检查了docker中的各种配置,将git的所有配置、ssh的配置都和宿主机保持了一致,但此报错在docker内还是存在。在网上查询了很长时间,百度上大部分相关的文章都看了下,发现并不能消除这个报错。

在外网查了下,终于发现相关解释和处理方式,有兴趣可以看下下面三个连接:

https://blog.hqcodeshop.fi/archives/482-OpenSSH-8.3-client-fails-with-load-pubkey-invalid-format.html

https://bbs.archlinux.org/viewtopic.php?id=256210

https://unix.stackexchange.com/questions/279509/ssh-key-load-public-invalid-format-warning

解决办法: 删除.ssh文件夹下的.pub文件!!!

出现这个问题大致原因是在2018年7月11日,openssh开发人员引入了对加载公钥的检查,并在失败时发出了一个非常具有误导性的错误消息,openssh的git提交链接中这块代码就是导致这个报错的“元凶”:

check_load(sshkey_load_public(filename, &public, NULL),
    filename, "pubkey");

。报错看似是私钥的问题,其实是对公钥的检查导致的,即便你在执行命令的时候不需要公钥,也要去检查下公钥文件。大部分人都说是在OpenSSH 8.3版本后出现的这个问题。我看了下docker中的版本:ssh -V

OpenSSH_7.9p1 Debian-10+deb10u2, OpenSSL 1.1.1d  10 Sep 2019

发现我这出问题的是7.9版本啊,然后又看了下git提交链接,对比了版本发现,其实那些校验是在7.8版本加上的,也就是说从7.8版本开始就会出现这个报错了。服务器上6.6版本所以没问题。

如果你遇到了这个烦人的报错,试验了很多方式都解决不了的话,不妨试试这个方法!文章来源地址https://www.toymoban.com/news/detail-422077.html


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_32737755/article/details/128660487

到了这里,关于git操作:load pubkey “~/.ssh/id_rsa“: invalid format的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “/home/hadoop/.ssh/id_rsa.pub“/usr/bi

     问题:  解决: vi ~/.ssh/known_hosts        (进到里面通通删掉再重新传密匙)

    2024年02月13日
    浏览(48)
  • 【服务器】SSH 私钥报错 Permissions for ‘id_rsa‘ are too open. It is required that your private key

    (发现XShell自带的公私钥生成工具,生成的公私钥对不好使) 使用ssh-keygen生成公私钥对之后,直接在cmd命令行中进行连接: 得到 将公钥添加到服务器的authorized_keys之后, 报错如下 主要是因为本地的私钥文件 id_rsa 的权限太开放了 Windows环境下 在Windows本地环境下: 右键id

    2024年02月02日
    浏览(40)
  • openssl3.2 - exp - export RSA pubKey from RSA privKey on memory

    官方给的例子(openssl3.2 - 官方demo学习 - encode - rsa_encode.c)是基于文件操作的. 我的工程只需要openssl 操作内存数据, 改了一个操作buffer的版本. 从内存中的RSA私钥数据, 导出RSA公钥来用.

    2024年03月11日
    浏览(41)
  • 解决Git error: no matching host key type found. Their offer: ssh-rsa

    Windows 的修改SSH配置文件 在Git安装目录找到此文件  编辑此文件,末尾添加如下代码: 然后保存,关闭即可。 测试git clone,如果出现弹窗,选择yes输入git密码即可。

    2024年01月16日
    浏览(49)
  • Invalid keystore format 报错解决

    最近下载新版本的Android Studio,并配置使用jdk 11作为Java环境,创建签名证书提供给合作伙伴签名报以下错误: com.android.ide.common.signing.KeytoolException:Failed to read key dscg from store \\\"D:DirKeydscg.jks\\\":Invalid keystore format  经过排查问题分析,我方创建证书采用Android studio中配置的jdk版本

    2024年02月11日
    浏览(39)
  • Kernel: module: Invalid module format

    https://www.man7.org/linux/man-pages/man3/memcmp.3.html 这个错误的报出点是kmod这个开源模块里的insmod.c: 出现ENOEXEC的地方是,说这个size 小于EI_NIDENT

    2024年02月08日
    浏览(56)
  • AndroidStudio打包 Invalid keystore format 报错

    先贴出报错信息 Execution failed for task \\\':examplecases:packageRelease\\\'. A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable     com.android.ide.common.signing.KeytoolException: Failed to read key aaa from store \\\"C:UsersaDesktopNewProjectaaa.jks\\\": Invalid keystore format * Try: Ru

    2024年02月16日
    浏览(34)
  • docker报错:docker: invalid reference format.

    1.‘-‘写成’-’ :记住一定时英文短横线 2: 与前面内容缺少空格 3: 后面多敲了tab建 或者空格 省流 如果是copy现成命令导致的 直接手敲一遍 即可解决 说说我的情况叭 我是直接copy现成写好的以至于出现这种错误(pdf)中copy以至于格式会乱 这样复制过去直接出现invalid refe

    2024年02月11日
    浏览(41)
  • docker:invalid reference format 原因及解决办法

    本文只介绍生产环境中遇到的问题,为docker拉取、下载、推送镜像相关内容的问题,现根据情况列出解决办法之一! shell脚本中定义变量给docker,出现invalid reference format [上面脚本仅为提供测试,该脚本中在执行到docker pull的过程中会报错invalid reference format];在命令行执行d

    2024年02月16日
    浏览(39)
  • Android编译打包报错Invalid keystore format

    运行一个开源老项目,编译出现以下错误。 按照错误提示,是debug的签名格式有问题。 我们只需要打开c盘,在当前用户的目录,有个.android目录,删除里面的debug.keystore。 如果删除的时候提示进程被占用,先退出Android Studio。然后再删除就可以了。 最后重新运行项目,会自动

    2024年02月16日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包