TortoiseGit和Git密钥配置图文教程

文章有点长,可以点击标题跳转明细

Git密钥配置

TortoiseGit密钥配置

TortoiseGit和Git密钥配置图文教程

TortoiseGit和Git如何使用相同的密钥

TortoiseGit和Git的区别和联系

TortoiseGit是可视化操作工具,默认使用putty格式的私钥,扩展名为.ppk

Git是客户端,默认使用的是OpenSSH格式的私钥,扩展名为.rsa

通常情况下,因为TortoiseGit和Git的默认密钥格式不一样,我们需要给TortoiseGit和Git分别配置密钥。

TortoiseGit密钥配置图文教程

1. 在【开始菜单】中找到【TortoiseGit】下的【PuTTYgen】(建议直接搜索PuTTYgen),单机运行。

2. 点击【Generate按钮】,鼠标需要在【Key区域】活动直至绿色进度条完成(切记,鼠标一定要动哦,鼠标不动的时候,绿色进度条就暂停啦)(注意英文提示:Please generate some randomness by moving the mouse over the blank area)用来生成随机数的一种机制

Key值生成中
Key值生成中
Key值生成成功

3. 【Key区域】 中【Public key for pasting into OpenSSH authorized_keys file:】多行文本的字符串就是公钥,可以将该公钥配置到码云、GitLab、Github等代码托管网站或服务器上(一般代码托管网站配置SSH公钥都在个人设置(Settings)中,找到SSH关键字,将当前获得的公钥填入,title(标题)随意填写,保存就行)

4. 点击【Save private key按钮】,保存成后缀名为.ppk的私钥文件

5. 在【开始菜单】中找到【TortoiseGit】下的【Pageant】(建议直接搜索Pageant),单机运行。程序启动后并不会直接弹出【Pageant Key List面板】,而是停靠或隐藏在任务栏中(经常启动Pageant后傻乎乎的等待面板弹出?),双击该图标,就能看到Pageant Key List啦

6.  点击【Add Key按钮】,将步骤四中保存在本地的.ppk私钥文件加入。大功告成

使用过程中,请确认【Pageant Key List】正在运行,且载入了对应私钥。

举例报错:Disconnected:No supported authentication methods availabled (server sent: publickey) 就是没有将步骤四中的私钥放进Pageant Key List中。每次电脑重启之后,就需要重新打开【Pageant】并添加私钥是不是很麻烦呢?请参阅,如何将私钥永久保存在Pageant Key List中?每次重启电脑都需要重新添加

7.  私钥公钥配置完成,就可以愉快的使用TortoiseGit的可视化操作界面啦!

 

 Git密钥配置图文教程

1. 右键【Git Bash Here】打开终端命令工具,window系统自带的CMD( command 系统命令执行程序)也是可以的。

2. 生成新的SSH密钥,在命令工具中执行代码,邮箱可以随意填写

ssh-keygen -t rsa -C "你的邮箱"

3. 命令解析: 

    ① 定义生成公钥私钥的文件名称;若不定义名称,密钥文件会以默认文件名存储在默认地址。(一般的,默认存储地址为C:\Users\用户名\.ssh,如图)

若定义了名称,密钥文件会以定义好的名称为文件名,存储在当前文件夹内

如图示,在F:\gitssh文件夹下运行SSH秘钥生成命令,并设置了文件名testssh,就会在F:\gitssh目录下生成私钥和公钥文件。

(需要注意的是,若自定义了名称,生成密钥之后还是需要把文件移动到默认目录?

    ② 设置密码,不需要设置时直接回车即可

    ③ 代表密钥生成成功

4.  根据图文提示找到存储密钥的文件,.pub文件中就是生成的公钥,将该公钥配置到码云、GitLab、Github等代码托管网站或服务器上(一般代码托管网站配置SSH公钥都在个人设置(Settings)中,找到SSH关键字,将当前获得的公钥填入,title(标题)随意填写,保存就行)。若果把密钥文件存储在了默认文件夹,找起来会比较麻烦,可以直接命令查找:

cat ~/.ssh/id_rsa.pub

5. 测试公钥是否配置成功(输入以下命令,会自动在.ssh目录生成known_hosts文件把私钥配置进去)

若未配置,会提示是否将对应私钥配置到known_hosts文件,请输入yes;若已配置,则提示successfully

ssh -T git@主机名
// 如码云(https://gitee.com)主机名为gitee.com
// 如github(https://github.com)主机名为github.com

6.  私钥公钥配置完成,就可以愉快的使用git clone / git pull / git push 命令啦,如拉取远程项目:

TortoiseGit和Git如何使用相同的密钥

 

使用【TortoiseGit】的【PuTTYgen】生成的私钥和使用Git的【ssh-keygen -t rsa -C "你的邮箱"】命令生成的私钥后缀名称是不一样的,文件内容也不一致。

我们不能将Git命令生成的.rsa文件加入TortoiseGit的Pageant Key List中,也不能直接拷贝TortoiseGit生成的密钥到 “c:\用户\自己的用户名\.ssh” 文件夹下。我们分两种情况进行操作,让TortoiseGit和Git能够使用相同的密钥。

假设TortoiseGit的密钥配置完成,这时我们可以用TortoiseGit可视化界面操作远程仓库,但不能用Git命令行操作远程仓库

方法一:PuTTYgen工具转换文件类型

TortoiseGit中的PuTTYgen工具不仅能够生成密钥,还能转换密钥类型。

TortoiseGit和Git公钥类型是一样的(默认文件名称有区别,但文件里的内容是一致的),只要将TortoiseGit生成的私钥转换成Git能识别的私钥类型就行。

转换私钥:启动【PuTTYgen工具】→打开工具栏【Conversions>import key将配置TortoiseGit密钥时的私钥导入→点击【conversions>export openSSH key】,保存文件名为id_rsa的文件,不需要拓展名(保存到“c:\用户\自己的用户名\.ssh”,即Git默认的ssh存储地址)

保存公钥:将配置TortoiseGit密钥时的公钥,复制一份,保存到”c:\用户\自己的用户名\.ssh“,命名为id_rsa.pub。当然也可以就着上一步私钥转换的时候,直接保存公钥到默认文件夹。

注意事项:需要将密钥存储在GitSSH默认地址,一般window系统在“c:\用户\自己的用户名\.ssh”。Git私钥文件名为id_rsa,Git公钥文件名为id_rsa.pub

这样,相当于配置了一回Git的SSH(不通过ssh-keygen -t rsa -C "你的邮箱"命令配置,而是通过PuTTYgen将TortoiseGit的密钥转换成合适的格式),让openSSH与PuTTY使用相同的密钥,Git Bash使用openSSH连接,而TortoiseGit使用PuTTY连接,谁也不碍着谁。

假设Git的密钥配置完成,这时我们可以用Git命令行操作远程仓库,但不能用TortoiseGit可视化界面操作远程仓库

方法二:调整TortoiseGit中Network选项

空白地方右键-->TortoiseGit-->Settings,将Network(网络)中的SSH client(SSH客户端)改为Git目录下的ssh.exe(\Git\user\bin\ssh.exe)。

方法三:Re-run First Start Wizard

空白地方右键-->TortoiseGit-->Settings,General(常规设置)-->点击"Re-run First Start Wizard"(重新运行首次启动向导)

一直点击下一步 ,到如下界面选择【OpenSSH】,默认是【TortoiseGitPlink】,点击【完成】

这样,相当于 让TortoiseGit使用Git的密钥配置。TortoiseGit和Git都使用openSSH连接。

如何修改提交方式 https -> ssh

TortoiseGit修改https -> ssh

对应文件夹右键-->TortoiseGit-->Settings-->Git-->Remote(远端),修改对应的URL为SSH地址,Putty密钥定位到对应的私钥文件

Git修改https -> ssh 

通过git命令调整协议 

查看当前的 remote url命令:

 git remote -v

调整协议方式命令: 

// 传递两个参数origin 和 url
git remote set-url origin url

复制项目对应的ssh地址,运行上面的命令。

配置文件修改https -> ssh 

各种修改https -> ssh 的方法,究其根本,都是修改了配置文件(.git/config文件 ),比较两种方式下的配置文件就能发现,修改https -> ssh,只需要修改配置文件中的url。

对于TortoiseGit调整成ssh方式的时候,不要忘记添加私钥文件,打开Pageant Key List 或者配置“puttykeyfile = 私钥文件所在目录”参数。

ssh方式:

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = git@gitee.com:********.git
	fetch = +refs/heads/*:refs/remotes/origin/*
	puttykeyfile = F:\\gitssh\\putty_private.ppk
[branch "master"]
	remote = origin
	merge = refs/heads/master

https方式: 

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = https://gitee.com/********.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master

与君共勉:再牛逼的梦想,也抵不住傻逼般的坚持! 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值