gitlab ssh无法clone(ssh-keygen加密算法问题)

3 篇文章 0 订阅

背景:

gitlab 比较古老的一个版本8.5.8(twang2218/gitlab-ce-zh:8.5.8).搭建方式可以参照:Kubernetes 1.20.5 安装gitlab。其实都是基于sameersbn的文档搭建的,甚是古老!开启了https and ssh的方式(也有http,毕竟on kubernetes.作了端口的映射),https and http clone的时候经常会出现504.…也没有办法仓库都大几百M…
image.png
先不说他们更新麻烦, 我在打包的时候jenkins pipeline基本都是**depth: 1 **即 git clone --depth=1

    stages {
        stage("GetCode"){
            agent { label  "build01" }
            steps{
                script{
                    println("下载代码 --> 分支: ${env.branchName}")
                    checkout([$class: 'GitSCM', branches: [[name: "${env.branchName}"]],
                    doGenerateSubmoduleConfigurations: false,
                        extensions: [[$class: 'CloneOption', depth: 1, noTags: false, reference: '', shallow: true]],
                    submoduleCfg: [],
                        userRemoteConfigs: [[credentialsId: 'xxxxx',
                        url: "${env.gitHttpURL}"]]])
                }
            }
        }

今天正好需要clone一个仓库,http and https的这样504摧残,正好准备ssh clone 一下…

gitlab ssh clone 仓库

生成ssh密钥对:

其实本来有密钥对的,这里假装一下小白直接从头开始创建了:

[root@zhangpeng .ssh]# ssh-keygen

image.png
当然了也可以下面这样创建:

ssh-keygen -o -t rsa -b 4096 -C "xxxx"

上传公钥到gitlab服务器:

查看id_rsa.pub 中的文件内容上传到gitlab的ssh密钥管理里面:

cat id_rsa.pub 

image.png
image.png
image.png

clone仓库失败的经历

尝试ssh clone 仓库,当然了前提需要确定用户有此仓库的操作权限起码是访问才能clone…但是现实是clone失败…
image.png
尝试了网上很多的所谓解决方案无一例外都以失败告终…抱着打不过就躲的想法,先换一台服务器去尝试一下:
rocky8 server 一台如下:
image.png

[root@gitlab .ssh]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:J3pDUja1v0cWNy5qQLl6Xa1e2YI9oex3WZFsC0q5XlQ root@gitlab
The key's randomart image is:
+---[RSA 3072]----+
|          .      |
|         ...   E |
|        +o. . +.o|
|       o...+ ooB.|
|      . Soo =o*oo|
|       +.oo+oOoo+|
|      ..o..+*.=o+|
|       ....o..o+.|
|            .o . |
+----[SHA256]-----+

image.png
上传pub 公钥到gitlab服务器:
image.png
继续尝试clone,竟然成功了…

git clone ssh://git@xxx.xxxx.com/xxxx/xxxx.git

image.png
我想对比一下两个服务器的ssh 版本 or 加密算法?
rocky8

[root@gitlab .ssh]# ssh -V
OpenSSH_8.0p1, OpenSSL 1.1.1k  FIPS 25 Mar 2021

rocky9

ssh -V

image.png
ssh版本是不一样 有小版本的区别,具体的差异还不清楚…
~/.ssh目录下文件看一下,肉眼可见known_hosts 中两个系统一个ecdsa-sha2-nistp256 另外一个ssh-ed25519.这应该是加密算法吧?换个思路重新生成一个其他加密方式的密钥尝试一下?
image.png
image.png
先不明所以的新如何让rocky9 生成一个ecdsa-sha2-nistp256的呢?偶然看到了https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
image.png
我能不能尝试一下修改一下ed25519参数尝试一下?rocky 9先删除 .ssh目录下所有文件(当然了应该备份一下,我这里就草根演示!)

ssh-keygen -t ecdsa -C "zhangpeng@zhangpeng.com"

image.png
想当然以为上传id_ecdsa.pub到gitlab:
image.png
首先确认这是有效的,可以clone下来了:
image.png
看一下know_host仍然是ssh-ed25519。但是git ssh这里是解决了。具体愿意还不知道…不过我貌似前几天update了一下系统…这里就记录一下吧,具体的原因 and加密的算法有时间去研究一下!
image.png

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

对你无可奈何2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值