引言
我们放在GIT库的项目,遇到pull或者push等操作的时候,经常需要输密码
这未免太过繁琐,而配置SHH链接可以免除这样的烦恼,可谓不可不配,过程也非常的简单,几个命令即可
开源中国和Github的配置方式其实都是一样的,没什么区别,这里以开源中国为例
环境
首先你必须要有一个可以运行git命令的工具
- android studio自带的Terminal
- windows下的Git Bash
- 其他能响应Git命令的命令行
Git For Windows2.7.2 - 29.4MB
检查本机ssh key
先看下你本机的ssh key有没有
$ cd ~/.ssh
如果没有则提示: No such file or directory
如果有则会进入~/.ssh路径下
如果存在即可以用rm命令删除掉,我们重新生成一个ls #查看当前路径文件
rm * #删除所有文件
生成本地shh key
切回去根目录(~)
`$ cd ~
#保证当前路径在”~”下
`
生成rsa-key
`$ ssh-keygen -t rsa -C “xxxxxx@yy.com”
#建议填写自己真实有效的邮箱地址
#操作结果:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/xxxx_000/.ssh/id_rsa):
#不填直接回车
Enter passphrase (empty for no passphrase):
#输入密码(可以为空,建议为空)
Enter same passphrase again:
#再次确认密码(可以为空,建议为空)
Your identification has been saved in /c/Users/xxxx_000/.ssh/id_rsa. #生成的密钥
Your public key has been saved in /c/Users/xxxx_000/.ssh/id_rsa.pub. #生成的公钥
The key fingerprint is:
e3:51:33:xx:xx:xx:xx:xxx:61:28:83:e2:81 xxxxxx@yy.com
`
*本机已完成ssh key设置,其存放路径为:c:/Users/xxxx_000/.ssh/下。
注释:可生成ssh key自定义名称的密钥,默认id_rsa。
$ ssh-keygen -t rsa -C “邮箱地址” -f ~/.ssh/githug_blog_keys #生成ssh key的名称为githug_blog_keys,慎用容易出现其它异常。
到网站上添加这个key
打开刚刚生成的id_rsa.pub,复制所有内容,到git.oschina.net,个人设置,SSH公钥中,粘贴进去$ cd .ssh #切换到.ssh目录下
start . #用文件管理器打开当前目录
配置账户
$ git config --global user.name “your_username” #设置用户名
$ git config --global user.email “your_Email” #设置邮箱地址
测试ssh keys
`#开源中国
$ ssh -T git@git.oschina.net
#github
$ ssh -T git@github.com
#操作结果:
The authenticity of host ‘xxxxxxxx (xxxxx)’ can’t be established.
RSA key fingerprint is 16:27:xx:xx:xx:xx:xx:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
#确认你是否继续联系,输入yes,回车
Warning: Permanently added ‘xxxxxx’ (RSA) to the list of known hosts.
Enter passphrase for key ‘/c/Users/xxxx/.ssh/id_rsa’:
#生成ssh kye是密码为空则无此项,若设置有密码则有此项且,输入生成ssh key时设置的密码即可。
Hi xxx!
#出现词句话,说明设置成功。
`
至此,SSH KEYS 配置完成,然后就是使用 SSH URL 来导出项目,这个属于GIT就不多讲了
但是还要补充一个,就是之前的项目使用的是https,是不会自动使用ssh key的,如何切换到现在的ssh方式呢?
切换分支URL为ssh方式
使用 git remote 命令
git remote set-url origin 你的项目ssh地址