当前位置:   article > 正文

代码托管(二)git(1)介绍

代码托管(二)git(1)介绍

一、git相关

git github gitlub

二、gitlub签名认证

使用ssh克隆代码,使用gpg签名提交代码。

1、ssh签名

一对公钥和密钥,公钥复制到gitlub上。步骤如下

1.1、先在本地生成密钥和公钥

(1)配置用户名和邮箱

  1. git config --global user.name "moxun"
  2. git config --global user.email "xxx@xx.com"

(2) 生成公私钥

两种加密方式:ed25519(推荐)和rsa

ssh-keygen -t ed25519 -C "xxx@xx.com"
ssh-keygen -t rsa -C "xxx@xx.com"

按三次回车enter键即可生成,这里一般不需要添加名称和密码 

(3)打开文件查看,路径为C:\Users\用户名\.ssh

1.2、将公钥复制到gitlub上

上面第一步会生成两个加密文件,如我使用的是ed25519,则id_ed25519文件是私钥,id_ed25519.pub是公钥,打开,全选复制到gitlub上即可。

1.3、本地设置git全局生效
  1. git config --global gpg.format ssh
  2. #git config --global user.signingkey ~/.ssh/id_ed25519.pub
  3. git config --global user.signingkey ~/.ssh/你的文件名称
  4. git commit -S -m "My commit msg"
2、gpg签名

配置git提交为gpg签名,提交代码后gitlub上将显示verifiled。

2.1、下载gpg

GnuPG - Download

这是个可视化工具,下载后一步步安装即可(建议安装到默认目录即可)。

cmd命令行输入gpg --version,执行成功则说明安装成功。 

2.2、生成密钥

cmd命令行(或者idea终端或者git bash命令行)输入:

gpg --full-gen-key

弹出框一步步输入即可:

(1)

  1. $ gpg --full-gen-key
  2. gpg (GnuPG) 2.4.4-unknown; Copyright (C) 2024 g10 Code GmbH
  3. This is free software: you are free to change and redistribute it.
  4. There is NO WARRANTY, to the extent permitted by law.
  5. Please select what kind of key you want:
  6. (1) RSA and RSA
  7. (2) DSA and Elgamal
  8. (3) DSA (sign only)
  9. (4) RSA (sign only)
  10. (9) ECC (sign and encrypt) *default*
  11. (10) ECC (sign only)
  12. (14) Existing key from card
  13. Your selection?

选择1

(2)

  1. RSA keys may be between 1024 and 4096 bits long.
  2. What keysize do you want? (3072)

输入4096

(3)

  1. Please specify how long the key should be valid.
  2. 0 = key does not expire
  3. <n> = key expires in n days
  4. <n>w = key expires in n weeks
  5. <n>m = key expires in n months
  6. <n>y = key expires in n years
  7. Key is valid for? (0)
  8. Key does not expire at all
  9. Is this correct? (y/N) y

(4)输入名称和邮箱

(5)

  1. GnuPG needs to construct a user ID to identify your key.
  2. Real name: Zoomie Developer
  3. Email address: zoomie.developer@zoom.us
  4. You selected this USER-ID:
  5. "Zoomie <zoomie.developer@zoom.us>"
  6. Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?

输入O确认。弹框输入密码,可输入也可以不输入。完毕

2.3、查询刚才生成的密钥

(1)方法1

  1. gpg --list-secret-keys --keyid-format LONG <EMAIL>
  2. #将 <EMAIL> 替换为生成密钥时使用的电子邮件地址:如:gpg --list-secret-keys --keyid-format LONG wtyy@qq.com

在输出中,/后面的即为私钥,如我输出如下,则私钥为5FEC960A78DF29F6,

  1. sec rsa4096/5FEC960A78DF29F6 2024-04-19 [SC]
  2. 2C8974FE36C8386038AD3F4B5FEC960A78DF29F6
  3. uid [ultimate] tina.zhang <tina.zhang@zoom.us>
  4. ssb rsa4096/371D4A944D473731 2024-04-19 [E]

(2)方法2 

打开第一步下载的gpgwin可视化工具也可以查看到

2.4、使用密钥生成公钥
gpg --armor --export 你的密钥

复制输出的公钥,包括 BEGIN PGP PUBLIC KEY BLOCKEND PGP PUBLIC KEY BLOCK 行,粘贴到gitlub的gpg设置中即可。

2.5、本地设置git全局生效
git config --global commit.gpgsign true
2.6、idea配置gpg

settings-->git-->configure GPG key,点击会自动弹出来密钥,确认即可。

2.7、git全局配置gpg路径

往往还需要配置git的gpg路径:

  1. git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
  2. #具体路径参考第一步安装的路径

否则commit或者push会报错:

gpg: skipped "88F1EA372F568EBA": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/479669
推荐阅读
相关标签
  

闽ICP备14008679号