目录
前言
本文是为了tortoisegit 使用ssh方式推送和拉取远程仓库代码。
阅读本文需要的前提知识:git、tortoisegit的基本操作和概念。
一 概念
1.1两种秘钥格式
有两个密钥格式:a.OpenSSH格式的密钥 b.PuTTY格式的密钥。
从从使用来看,是互通的加密,仅格式不同
openSSH | Putty | |
---|---|---|
文件 | 私钥:id_rsa 文件 公钥:id_rsa.pub | 私钥: .ppk文件 公钥:id_rsa.pub (ppt = Putty Private Key) |
说明 | 都是OpenSSH格式的密钥 | ppk文件是Putty的私钥 |
1.2 加密对应关系
本节内容为作者方便理解而自定的概念
加密方式 | 本地 | 远程 |
---|---|---|
openSSH 单一 | openSSH私钥 id_rsa | openSSH公钥 id_rsa.pub |
mixed 混合 | PuTTY私钥 ppk | openSSH公钥 id_rsa.pub |
二 使用PuTTY 产生两种秘钥 (openSSH 和 ppk)
2.1 两种加密
- 远程都是openSSH私钥
- 本地分 openSSH私钥和ppk私钥
使用方 | 文件 | 内容 |
---|---|---|
–远程公钥 一种– | – | – |
网站 远程 | id_rsa.pub | github等网站需要这个文件中内容 文件内容开头为: ssh-rsa XXXXXXXXXXX |
–本地私钥 两种– | – | – |
tortoisegit使用ppk私钥 | *.ppk | tortoisegit使用的私钥 ppk(例如:puttykey.ppk) |
git命令行使用openSSH私钥 | id_rsa | 固定名称, git等本地使用的私钥 |
2.2 Generate 产生各种公钥私钥
- puttygen.exe 程序
- 点击generate
- 保存公钥 直接复制上面窗口中的文本(ssh-rsa)–>id_rsa.pub
- Conversion --> Export SSH Key --> id_rsa 私钥
- 点击按钮 save private key --> *.ppk私钥 (tortoisegit使用)
- 经过下图中的步骤 将得到 ①私钥id_rsa ② 私钥ppk ③公钥id_rsa.pub 都保存到 c:\用户\用户名.ssh 目录
步骤 | 图解 | 说明 |
---|---|---|
1 | ![]() | puttygen 程序 C:\Program Files\TortoiseGit\bin\puttygen.exe |
2 | ![]() | 点击“Generate”,在对话框上晃动鼠标加快生成 |
3 | ![]() | 将红框中的内容拷贝到一个文件 id_rsa.pub中,作为公钥 注:文本框上面写着Public OpenSSH key表明您正在拷贝的是公钥 注2:远程服务器使用的是公钥 |
4 | ![]() | 点击菜单:Conversions – Export OpenSSH key 导出文件 id_rsa 作为私钥 注:这里表明了Export OpenSSH key |
5 | ![]() | 点击按钮Save private key:导出 ppk文件作为私钥 |
三 使用公钥私钥 配置本地和网站
3.0 说明
- 远程网站使用 openSSH公钥
- 本地小乌龟tortoisegit使用 ppk
3.1配置网站的openSSH
1 | ![]() ![]() | 点击 + New Key 将公钥的内容复制到网站上 内容开头为:ssh-rsa 见2.2表中的第3项 |
2 | ![]() | 复制操作 |
3.2 操作-本地先有代码和仓库,然后再推送到远程仓库 (我的项目推到服务器)
- 创建本地仓库Create repository here),并commit本地代码
- 再建立远程仓库(此时远程必须是空的,连readme都不能有)
- 在本地填写远程的路径信息 + ppk文件位置
- 推送 “AutoLoad ppk key”
0. | ![]() | 创建本地的git仓库,并commit代码 |
1. | ![]() | 创建远程仓库。 注:远程仓库要为“空”,不要有readme和gitignore等文件 这些文件在本地仓库准备 |
1.1 | ![]() ![]() ![]() | 项目-repo-clone-ssh 复制 得到远程URL |
2. | ![]() | 设置仓库文件夹的远程连接 鼠标右键–>tortoisegit–>setting–>remote a.将远程的路径放在URL 和 Push URL中 b.将PuttyKey 选入路径 (ppk私钥) 点击添加 |
2. | ![]() | 第一次提交要勾选 自动加载ppk |
3.3 操作-远程已经有仓库,拉取 (服务器的代码,我拉下来)
- 产生好Key (如 2.2中的方法)
- 设置好远程的openSSH (如 3.1中的方式)
- clone代码,如下图填写信息 远程仓库URL 本地路径Directory 勾选Load PuttyKey 并选中用户/.ssh目录中的ppk文件