1 概述
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。
2 设置Git的user name和email
$ git config --global user.name "xuhaiyan"
$ git config --global user.email "haiyan.xu.vip@gmail.com"
3 生成SSH密钥过程
3.1 检查SSH keys是否存在
(1)ls -al ~/.ssh
(2)cd ~/.ssh ----> ls
输入上面的命令,如果有文件id_rsa.pub或id_dsa.pub,则直接进入步骤4将SSH key添加到GitHub中,否则进入3.2步骤生成SSH key.
3.2 生成新的ssh key
(1)输入命令,每步直接回车
ssh-keygen -t rsa -C "your_email@youremail.com"
(2)翻译打印结果(每步直接回车)
Creates a new ssh key using the provided email Generating public/private rsa key pair.
//此处输入将要保存的路径,默认为当前路径
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):<press enter>
//输入回车后提示输入一个类似于密码的自定义的通行证号,如果直接回车则为空
Enter passphrase (empty for no passphrase):<enter a passphrase>
//提示重新输入以便确认输入是否正确
Enter same passphrase again:<enter passphrase again>
(3)最后的结果
4 将ssh key添加到GitHub中
用自己喜欢的文本编辑器打开id_rsa.pub文件,里面的信息即为SSH key,将这些信息复制到GitHub的Add SSH key页面即可。
4.1 方式1——手动添加公钥到github
(1)点击SSH and GPG keys,点击右侧的New SSH key
(2)在Title处给该公钥取个名称,在Key部分将id_rsa.pub文件内容添加进去,然后点击“Add SSH key”按钮完成配置
(3)完成配置结果
4.2 方式2——命令行输入
(1) mac
pbcopy < ~/.ssh/id_rsa.pub
(2) windows
clip < ~/.ssh/id_rsa.pub
(3) linux
sudo apt-get install xclip
xclip -sel clip < ~/.ssh/id_rsa.pub
5 测试
(1)输入命令
ssh -T git@github.com
6 本地的.git/config设置的仓库url地址如果是https需要改为git@github.com
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://github.com/chenliguan/CodeLibs.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
重新clone git@github.com地址的仓库,如下图所示:
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = git@github.com:chenliguan/CodeLibs.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
最后测试,不需要再输入账号密码:
$ git push origin master:master
Everything up-to-date
7 SSH和Http的区别
(1)第一种方式:走SSH,就是按照本篇博客里的,配置用户名、密码,生成秘钥,然后在gitlab上配置ssh,然后就可以了。
(2)第二种方式,走Http,HTTP的缺点是每次都会访问账号密码,但是现在的工具有记住密码,所以也比较方便。凭据管理器中,输入一次账号密码后就记忆。如果没有,就需要手动录入。