GIT 的认证配置 有 SSH和HTTP两个选择,选择不同的选项会有不同的链接
git开头的url,就是是用 SSH key的方式进行认证,SSH的传输协议能支持更大的文件数
http开头的url,就是使用http方式进行认证的,需要在操作的时候输入用户名和密码
这里统一介绍下SSH key的配置,在其他文档的各个地方都有提及,这里完整梳理下(key可以添加多个,用于不同的机器及客户端),前提是已经安装了git 和 TortoiseGit(小乌龟)
一、windows
1.使用小乌龟(这个key只适用小乌龟)
新建一对公钥与私钥
步骤一:在开始菜单中找到Puttygen;
使用Puttygen生成的ppk密钥,在Linux下无法使用。如果希望在密钥对可以在多个环境使用,应该在linux下使用ssh-keygen生成密钥对,再通过Puttygen导入。
步骤二:点击“generate”按钮,在上方的空白区域持续滑动鼠标,来生成key;
步骤三:分别点击“Save public key“和”Save private key“按钮,保存公钥和私钥;
如果希望设置密码,需要在Key passphrase和Confirm passphrase文本框输入密码。通常可以不必设置。
步骤四:将公钥添加到Git服务器。Gitlab可以通过界面配置。
这里注意,直接打开导出的public文件复制可能会由于格式不对而无法添加,可以直接复制
这里的内容
步骤五:创建Pageant快捷方式,放入启动项中,确保开机时自动加载私钥。
1)在C:\Program Files\TortoiseGit\bin找到pageant.exe,发送到桌面快捷方式;
2)编辑pageant.exe快捷方式,在”目标“中增加私钥ppk文件位置,作为pageant.exe的参数;
3)将pageant.exe快捷方式放入Windows开始菜单的”启动“项中,以便系统启动时启动加载key。
导入现有私钥
有时候,可能已经有了一个在使用的OpenSSH格式的私钥,若要在TortoiseGit中使用这个私钥,可以用Puttygen导入。
成功导入后,再按照前一节中第三步骤开始执行配置即可。
2.使用自带的GUI或者smartgit
步骤一:使用GUI工具生成KEY
安装msysgit之后,右键可以查看到,点击GIT GUI
这里点击show SSH Key,可以看到key界面,如果已经生成过key,会将公钥显示出来,否则可以点击Generate Key生成一个
(这里注意,点击Generate Key的时候,会提示输入密码,意思是说,是否要为key密钥增加密码认证,如果配置了密码后续使用密钥的时候也需要输入密码,可以直接不填点击确定)
步骤二:将公钥复制添加到Gitlab
二、Linux/ MAC OS
步骤一:用ssh-keygen生成一对密钥;
$ssh-keygen
Generating public/privatersa key pair.
Enterfileinwhichto save the key (/home/gituser/.ssh/id_rsa):/home/gituser/path/to/keydir/gitlab
Enter passphrase (emptyforno passphrase):
Enter same passphrase again:
Your identification has been savedin/home/gituser/path/to/keydir/gitlab.
Your public key has been savedin/home/gituser/path/to/keydir/gitlab.pub.
The key fingerprint is:
79:30:6c:10:96:85:48:9a:b2:5f:85:2e:a6:70:06:0a gituser@computer.local
The key's randomart image is:
+--[ RSA 2048]----+
| ...+=. |
| o.ooo |
|E o . . = |
|o+ . . . + |
|+ = o S . |
|.* o . |
|. . |
| |
| |
+-----------------+
|
步骤二:编写用于给GIT加载私钥的脚本(如/home/gituser/local/gitkey.sh);
#!/bin/bash
/usr/bin/ssh-i ~/path/to/keydir/gitlab"$@"
|
注意设置gitkey.sh的权限。
$chmod+x/home/gituser/local/gitkey.sh
|
步骤三:在环境变量(~/.bash_profile,Ubuntu中为~/.profile)中配置GIT_SSH变量;
exportGIT_SSH=$HOME/local/gitkey.sh
|
步骤四:新开一个shell,或者重新加载环境变量。
$source~/.bash_profile
|