Git 配置ssh验证 签名

首先你得装了git,linux 自带的。Windows自己下载配置一下。 

注意 Windows下要用gitbash输入命令行,如果是Linux 就在默认命令行输入命令即可

大致思路如下(不一定对,因为有段时间没弄了):

1. 生成一个公钥和密钥(如果有则跳过这步)

         a. 打开Git Bash。

         b. 运行下面代码

ssh-keygen -t ed25519 -C "your_email@example.com"

         c. 当系统提示“Enter a file in which to save the key(输入要保存密钥的文件)”时,可以按 Enter 键接受默认文件位置,但是 请注意,如果以前创建了 SSH 密钥,则 ssh-keygen 可能会覆盖另一个密钥,如果不想这样,可以手动指定路径。

         d. 安全密码我留空了,如果想加密可以设置一个密码并记住它

         

2. 将 SSH 密钥添加到 ssh-agent

  1. 确保 ssh-agent 正在运行。(在gitbash中运行下面命令)

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. 将 SSH 私钥添加到 ssh-agent。 如果使用其他名称创建了密钥或要添加具有其他名称的现有密钥,请将命令中的 id_ed25519 替换为私钥文件的名称。

    ssh-add ~/.ssh/id_ed25519

      3.配置 Git 使用 SSH 对提交和标记签名:

git config --global gpg.format ssh

       4.在 Git 中设置 SSH 签名密钥,将 /PATH/TO/KEY.PUB 替换为要使用的公钥路径。(一般在 ~/.ssh下面)

$ git config --global user.signingkey /PATH/TO/.SSH/KEY.PUB

打开 home文件夹下的 .gitconfig(Windows 下为C:\Users,linux直接命令行 cd ~)

最终配置文件如下 

[user]

    name = 你的name

    email = 你的邮箱

    signingkey = 你的公钥(.pub结尾)

[gpg]

    format = ssh

 如果没问题的话 在代码后面添加

[commit]

    gpgsign = true

[tag]

    gpgsign = true

这样子 commit 和 tag 都会自动签名。

最终文件如下

[user]

    name = 你的name

    email = 你的邮箱

    signingkey = 你的公钥(.pub结尾)

[gpg]

    format = ssh

[commit]

    gpgsign = true

[tag]

    gpgsign = true

3. 将 SSH 签名密钥添加到 GitHub 帐户

        将 SSH 公钥复制到剪贴板 

        内容如下,以ssh-ed25519开头,一定要 Ctrl + A 全部复制

        

点击你GitHub 右上角头像

点击这里

 点击这里

两个都要添加,不然git 连接会出错

一个是连接授权,一个是签名。

GitHub中的SSH key分为两种类型:Authentication Keys(身份验证密钥)和Signing Keys(签名密钥)。

  1. Authentication Keys(身份验证密钥):

    • 用于身份验证,允许您与GitHub进行安全通信,例如通过SSH连接。
    • 当您从本地系统与GitHub进行交互时,这是用于验证您身份的密钥。通常,这与访问和推送代码相关。
  2. Signing Keys(签名密钥):

    • 用于对Git提交进行数字签名,以验证提交的真实性和完整性。
    • 这是在Git操作中确保提交的来源和内容未被篡改的一种方式。通过签署提交,您可以确保提交是由特定的私钥持有者创建的。

最后的验证,在git bash输入

ssh -T git@github.com

参考 

关于提交签名验证 - GitHub Enterprise Cloud Docs

Git 是一个分布式版本控制系统,用于跟踪文件内容的变化,而 Git 安全传输(HTTPS)则是通过 SSL 或 TLS 加密来保护你的数据传输。为 Git 配置 SSL 证书,你需要以下几个步骤: 1. **生成 SSL/TLS 证书**: - 如果你有自己的服务器和域名,可以从 Let's Encrypt 或其他可信 CA 获取免费的 SSL 证书,或使用自签名证书(适用于测试环境)。 - 在 Linux 上可以使用 `openssl` 工具生成证书和私钥,例如: ``` openssl req -x509 -newkey rsa:4096 -nodes -days 365 -out certificate.crt -keyout private.key ``` 2. **安装证书**: - 将 `certificate.crt` 和 `private.key` 分别放置在服务器的 `~/.ssh/` 目录下,通常对应于 `~/.ssh/ca.crt` 和 `~/.ssh/ca.key`。 - 如果是 Nginx 之类的 web 服务器,将证书放入合适的目录,并配置 Nginx 以使用这些证书。 3. **配置 Git 代理**: - 在客户端机器上,打开 Git配置文件(通常是 `~/.gitconfig`),添加以下行: ``` [http] sslcert = ~/.ssh/ca.crt sslkey = ~/.ssh/ca.key sslverify = true ``` 如果你的服务器支持 `HTTPs`,还可以指定 `https://` 前缀: ``` [url "https://"] insteadOf = git:// ``` 4. **验证连接**: - 使用 `git clone https://your-repo-url.git` 测试连接,Git 应该会自动验证证书并建立安全连接。 5. **注意**: - 不推荐在生产环境中使用自签名证书,因为浏览器可能会警告用户证书不安全。 - 如果你使用的是 GitHub、GitLab 等托管服务,它们通常有自己的证书,无需在客户端设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值