背景:
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……
先不说他们更新麻烦, 我在打包的时候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
当然了也能够上面这样创立:
ssh-keygen -o -t rsa -b 4096 -C "xxxx"
上传公钥到gitlab服务器:
查看id_rsa.pub 中的文件内容上传到gitlab的ssh密钥治理外面:
cat id_rsa.pub
clone仓库失败的经验
尝试ssh clone 仓库,当然了前提须要确定用户有此仓库的操作权限起码是拜访能力clone……然而事实是clone失败……
尝试了网上很多的所谓解决方案无一例外都以失败告终…….抱着打不过就躲的想法,先换一台服务器去尝试一下:
rocky8 server 一台如下:
[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]-----+
上传pub 公钥到gitlab服务器:
持续尝试clone,居然胜利了……..
git clone ssh://git@xxx.xxxx.com/xxxx/xxxx.git
我想比照一下两个服务器的ssh 版本 or 加密算法?
rocky8
[root@gitlab .ssh]# ssh -V
OpenSSH_8.0p1, OpenSSL 1.1.1k FIPS 25 Mar 2021
rocky9
ssh -V
ssh版本是不一样 有小版本的区别,具体的差别还不分明……
~/.ssh目录下文件看一下,肉眼可见known_hosts 中两个零碎一个ecdsa-sha2-nistp256 另外一个ssh-ed25519.这应该是加密算法吧?换个思路从新生成一个其余加密形式的密钥尝试一下?
先不明所以的新如何让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
我能不能尝试一下批改一下ed25519参数尝试一下?rocky 9先删除 .ssh目录下所有文件(当然了应该备份一下,我这里就草根演示!)
ssh-keygen -t ecdsa -C "zhangpeng@zhangpeng.com"
想当然认为上传id_ecdsa.pub到gitlab:
首先确认这是无效的,能够clone下来了:
看一下know_host依然是ssh-ed25519。然而git ssh这里是解决了。具体违心还不晓得…..不过我貌似前几天update了一下零碎…..这里就记录一下吧,具体的起因 and加密的算法有工夫去钻研一下!
发表回复