Git怎么使用SSH从GitLab上拉取代码
时间:2024-04-12 12:05:28 来源:网络cs 作者:胡椒 栏目:跨境学堂 阅读:
文章导入
我们本来在使用http/https愉快的拉取代码玩耍,但是突然你的Leader告诉你,我们需要使用SSH协议进行Git远程仓库的交互!!!!很迷茫,怎么办,没做过,为什么要使用SSH,不知道怎么做!此文章诞生,保姆级教程。
环境:win11、git version 2.41.0.windows.1
一、怎么生成SSH密钥
1、进入你的ssh配置文件夹,地址eg: C:\Users\张三\.ssh
2、在地址栏输入CMD打开此位置的小黑窗
3、打开带此地址的小窗后,输入ssh-keygen -t rsa -b 4096 -C "huweiwei@xxxx.com"
!!!!!!!!各参数意思解释看最后!!!!!!!!
会提示:
C:\Users\13735\.ssh>ssh-keygen -t rsa -b 4096 -C "huweiwei@xxxx.com"Generating public/private rsa key pair.Enter file in which to save the key (C:\Users\13735/.ssh/id_rsa):
此时光标闪烁,需要我们输入要生成的密钥的文件名称,我输入gitlab_key
会提示:
C:\Users\13735\.ssh>ssh-keygen -t rsa -b 4096 -C "huweiwei@xxxx.com"Generating public/private rsa key pair.Enter file in which to save the key (C:\Users\13735/.ssh/id_rsa): gitlab_keyEnter passphrase (empty for no passphrase):
此时光标闪烁,需要我们输入密码,此密码即为我们每次操作git的时候需要输入的密码,相当于进门的钥匙,是我们自己使用的,可以防止可爱的同事拿你的电脑提交可爱的代码~~~
我输入密码123456
,会再次提示请输入密码,再次输入即可,两次不一致也会给出提示。输入完两次密码如下即密钥生成成功:
C:\Users\13735\.ssh>ssh-keygen -t rsa -b 4096 -C "huweiwei@xxxx.com"Generating public/private rsa key pair.Enter file in which to save the key (C:\Users\13735/.ssh/id_rsa): gitlab_keyEnter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in gitlab_keyYour public key has been saved in gitlab_key.pubThe key fingerprint is:SHA256:oWWRRWeV03SYb17D7wl//iJSwbSfvq0ibA8HlhP2AoI huweiwei@xxxx.comThe key's randomart image is:+---[RSA 4096]----+| .+o o..*o|| . .. o. = o|| E . = oo ..o || = + ++ o+|| . S * .o ++|| . +..o o|| .....o..|| =oo o+o|| . +.oo=*|+----[SHA256]-----+
然后去我们的ssh的文件夹里去看,果然生成了我们输入的名字的密钥,如图:
二、怎么配置到gitlab上
现在密钥有了,我们就可以配置到gitlab上啦,刚才生成的两个文件,用记事本打开.pub
的那个文件,然后复制里面的内容,打开gitlab的主页,然后添加Key,如图:
至此所有的配置流程就完成了~
三、进行Clone
好了 简简单单就配置好啦~现在可以拉仓库了,当然是用SSH去拉,命令:git clone ssh://git@192.168.127.108:5548/project/wechat.git
然后不出意外的话就会出意外,如果出意外,请看下节!
四、可能遇见的问题
1、完成了上述流程之后还是拉不下来,提示 Permission denied (publickey)
解决:删除ssh文件夹下所有文件,重新生成、重新配置、重新拉取,ok
2、三个重新之后还是 Permission denied (publickey)
,请再重新生成(这里需要注意:生成的时候提示Enter file in which to save the key (C:\Users\13735/.ssh/id_rsa):
不要设置文件名,不设置会采用默认的,我发现自己设置文件名会造成系统识别不了,导致校验失败),重新配置,重新拉取,这次肯定ok,还不行请留言~
3、如果在生成密钥的时候输入了密码,会提示让输入密码,我们之前输入的是123456,输入即可
五、SSH和HTTPS方式特点说明,为什么要使用SSH
很明显,两种拉取方式使用的协议不同,有兴趣可以研究SSH协议、HTTP协议;而HTTPS协议其实是HTTP+SSL。具体:
ssh:
(1)默认端口22
(2)验证方式是本地生成ssh密钥,上传到服务器;
(3)不用反复输入密码
一般线上服务器不会默认开通22端口,所以ssh适合内部项目开发使用,配置相对繁琐,新手不友好。
http/https:
(1)默认端口80、443
(2)验证方式方式是通过用户名和密码
一般线上服务器都是开发80端口和443端口的,可以无感远程操作,适合做一些开源项目和内部项目。输入账号密码即可,新手相对友好,现在很多密码持久保存策略,也都可以实现不用每次都输入密码。
六、生成SSH密钥时各参数解释
ssh各参数系统解释如下:
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] destination [command]
ssh-keygen各参数系统解释如下:
usage: ssh-keygen [-q] [-a rounds] [-b bits] [-C comment] [-f output_keyfile] [-m format] [-N new_passphrase] [-O option] [-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa] [-w provider] [-Z cipher] ssh-keygen -p [-a rounds] [-f keyfile] [-m format] [-N new_passphrase] [-P old_passphrase] [-Z cipher] ssh-keygen -i [-f input_keyfile] [-m key_format] ssh-keygen -e [-f input_keyfile] [-m key_format] ssh-keygen -y [-f input_keyfile] ssh-keygen -c [-a rounds] [-C comment] [-f keyfile] [-P passphrase] ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile] ssh-keygen -B [-f input_keyfile] ssh-keygen -D pkcs11 ssh-keygen -F hostname [-lv] [-f known_hosts_file] ssh-keygen -H [-f known_hosts_file] ssh-keygen -K [-a rounds] [-w provider] ssh-keygen -R hostname [-f known_hosts_file] ssh-keygen -r hostname [-g] [-f input_keyfile] ssh-keygen -M generate [-O option] output_file ssh-keygen -M screen [-f input_file] [-O option] output_file ssh-keygen -I certificate_identity -s ca_key [-hU] [-D pkcs11_provider] [-n principals] [-O option] [-V validity_interval] [-z serial_number] file ... ssh-keygen -L [-f input_keyfile] ssh-keygen -A [-a rounds] [-f prefix_path] ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number] file ... ssh-keygen -Q [-l] -f krl_file [file ...] ssh-keygen -Y find-principals -s signature_file -f allowed_signers_file ssh-keygen -Y check-novalidate -n namespace -s signature_file ssh-keygen -Y sign -f key_file -n namespace file ... ssh-keygen -Y verify -f allowed_signers_file -I signer_identity -n namespace -s signature_file [-r revocation_file]
前面使用的生成SSH密钥的命令:ssh-keygen -t rsa -b 4096 -C "huweiwei@xxxx.com"
-t 就是生成策略了,策略有这些: dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa
我们使用rsa策略
-b 是指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)
-C 是comment,注释文字,我们写的是邮箱
本文链接:https://www.kjpai.cn/xuetang/2024-04-12/157527.html,文章来源:网络cs,作者:胡椒,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!
上一篇:《宠妾灭妻:重生后我屠他满门》苏沁月章慎最新章节小说
下一篇:返回列表