Skip to content

git解决方案

git添加SSH公秘钥

官方SSH文档

检查现有SSH秘钥

目录一般在个人目录下隐藏的.ssh文件下 目录下.pub是公钥, 同名没后缀的为私钥

shell
cd ~/.ssh

生成新的SSH秘钥

系统会提示你保存地址跟输入安全码 嫌麻烦全部回车即可

shell
ssh-keygen -t ed25519 -C "你github的电子邮箱"

将 SSH 密钥添加到 ssh-agent

  1. 手动启动 ssh-agent
# start the ssh-agent in the background
$ eval "$(ssh-agent -s)"
> Agent pid 59566
  1. 将私钥添加到ssh-agent
ssh-add ~/.ssh/你的私钥名称

将公钥添加到github上

公钥是.ssh文件夹下的.pub文件内容

setting >> SSH and GPG keys >> 添加SSH

在 Git for Windows 上自动启动 ssh-agent

您可以在打开 bash 或 Git shell 时自动运行 ssh-agent。 复制以下行并将其粘贴到 Git shell 中的 ~/.profile 或 ~/.bashrc 文件中:

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2=agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

gitTortoise

puttygen、pageant都可以在gitTortose目录中找到或者通过开始菜单搜索

由于tortoisegit使用的是putty的.ppk格式的密钥,而gitlab必须使用rsa密钥,因此使用其自带的工具puttygen来生成密钥 所以github上需要保存两份公钥, 一份给git bash用, 一份给gitTortoise用

打开puttygen生成秘钥

github保存公钥: setting >> SSH and GPG keys >> 添加SSH

点击generate,此时会开始生成密钥,时间比较长

  1. 公钥保存到github上
  2. 点击 sava private key,保存.ppk格式的私钥放在.ssh文件下
  3. 点击 sava public key,保存公钥放在.ssh文件下(注意不要覆盖之前的,另取名),这里是为了方便追溯,不做也可以

putty

打开pageant注册

点击add key, 选择刚才保存的xx.ppk, 添加成功。

pageant

gitTortoise配置

  1. 配置putty秘钥

  1. 配置ssh执行文件

  1. 配置全局(一般来说不需要)

现在就可以用gitTortiose去处理github了

tip

  1. 主要就是gitTortiose只能用ppk文件做私钥,所以得再上传一份公钥