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】,点击【完成】
与君共勉:再牛逼的梦想,也抵不住傻逼般的坚持!