TortoiseGit使用PuTTY密钥认证

使用密码访问Git服务器需要每次输密码,这样很麻烦并且也不够安全。出于安全考虑,GitHub等Git服务器甚至拒绝使用密码认证,因此,学会使用密钥认证非常有必要。

其实使用RSA密钥对认证最早用于SSH的认证,密钥对即一个私钥和一个对应的公钥,在本地计算机配置好私钥并且在远程计算机设置好你的公钥后就可以通过密钥对认证了。本文不介绍OpenSSH的密钥对的生成(其实原理都一样),针对TortoiseGit使用的PuTTY介绍其配置方法。

扩展阅读:对于哪台计算机放私钥哪台计算机放置公钥可能会记混了,可以这样记:私钥一般要用密码保护,公钥是可以从私钥生成的;远程计算机往往是大家公用的计算机,每个人用自己的私钥生成一个公钥并放置在服务器就可以访问,并且也不会出现安全问题;而如果服务器放私钥,每个能访问服务器的人都可以用这个公钥生成私钥放到自己的计算机,这就失去了其安全意义了。

首先从https://tortoisegit.org/ 下载TortoiseGit并根据默认设置安装。

在TortoiseGit的安装目录下找到puttygen.exe程序并打开如下:

  1. 点击Generate生成密钥;
  2. 复制生成的公钥并创建名为authorized_keys的文件放到服务器的当前用户的.ssh目录(即~/.ssh目录),并为authorized_keys文件指定600权限,并注意目录和文件所有者是否为当前用户;(注意一定要从窗口拷贝公钥、然后创建文件,不要使用保存公钥按钮,因为生成的文件有稍微的不同)
  3. 为私钥加密码保护,这个密钥很有必要,这样即使别人把你的私钥拿走也不能生成公钥;
  4. 保存你的私钥到你的计算机你喜欢的位置。

Screen_Shot_2011-12-12_at_5.29.21_PM__1_.png

这时尝试从你的服务器clone文件如下图:

  1. URL位置输入你的仓库的路径(比如“ssh://git@YourUrl:/project.git”),默认使用ssh协议,最前面的“ssh://”可以省略,git即用户名,一般会为git仓库创建名为git的用户,也可以使用其他用户,比如root,后面的YourUrl是你的IP地址或域名,不要忘记后面还有个冒号“:”,最后面就是你的仓库的绝对路径(如果是自己搭建的服务器,感觉路径太长,可以在服务器上创建一个软链);
  2. Directory位置即你本地的目录,clone下来的文件就存在该目录;
  3. Load Putty Key就是我们在上面保存的私钥xxx.ppk文件(可能需要输入私钥的密码),如果该功能是灰色的,不能使用,则需要在Git的Setting的Network中设置TortoiseGitPLink.exe程序的路径(默认可能是ssh.exe);
  4. 如果能够成功clone,则证明配置成功。

设置本地仓库:在仓库的右键菜单打开仓库的Setting窗口;在Remote中设置远程仓库的Url和本地的ppt私钥文件,(如果你没有别的服务器可以选择Push Default),然后点击“Add New / Save” 保存当前服务器(名字一般就是origin),然后点击确定关闭窗口即可。

Push你本地的仓库:

在仓库的右键菜单选择Push,如果已经配置好服务器,则应该能够Push成功。

扩展阅读:Commit和Push是不同的概念(尤其对于使用过SVN的可能比较困惑),简单的理解就是:Commit是把你的文件放到本地仓库,Push就是把本地仓库同步到远程服务器。因此在断网的情况下还是可以根据自己的需要Commit的(经常Commit是个好习惯,有吃后悔药的机会),等有网了或者结束一天的工作后就可以Push到服务器了。

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注

5 + 16 =