Git相关博客:
SSH 免密登录配置Git相关命令整理
1. ssh配置
本地Git仓库和GitHub等远程仓库之间的传输是通过SSH加密的,所以,通过配置密钥可以无需每次输入用户名和密码。
这里需要强调的是,一般博客都是以最简单的默认的密钥生成方式。而往往我们需要修改密钥的位置。因此这里着重强调一下ssh的config文件的使用。
1.1 密钥生成
ssh-keygen -t rsa -C "youremail@example.com"
在创建过程中可以修改保存位置和文件。具体细节可以参考廖雪峰的Git教程
1.2 ssh config 配置
当需要针对不同的服务器提供不同的密钥时,就需要使用config文件进行配置。
config文件具体位置为~/.ssh/config
。示例及相应说明1如下
Host my_gitee
HostName gitee.com
User git
IdentityFile /data/.ssh/id_rsa
相应的解释:
Host <my_git>: <my_git>可以自定义配置。
后面在push或者克隆git的时候,使用ssh地址:git@<my_git>:xxx/xxx.git
,其中的<my_git>
默认是github.com
或者gitee.com
,要替换为这里自定义的<my_git>
HostName <远程仓库的地址> 应该和官方的地址保持一致
此处的HostName
就是github.com/gitee.com
等域名。
User git 我都是用git,没试过别的。
IdentityFile <your path> 你要用的密钥的位置。注意是密钥,不是公钥。
这行最为关键,指定了该使用哪个ssh key文件,这里的key文件一定指的是私钥文件。
1.3 将公钥添加到远程仓库
这里就是将.pub的公钥添加到远程仓库中即可。
1.4 测试:
完成上述步骤后既可以运行如下命令进行测试:
ssh -T git@github.com
如果提示成功即可。如果没成功,尝试:
ssh -T -i <your path> git@github.com
通过-i
指定密钥位置,看是否成功,检查是否是设置的问题。
git 创建上传
在github等创建一个空仓库的时候就会给出git相关命令。同时可以参考博客Git相关命令整理 这里需要强调还是上面提到的,当添加远程仓库的地址的时候,注意要将相应的域名修改为config中相应的Host
的值。
否则就会调用默认的密钥。如果密钥不匹配就不起作用了。
- 如何使用特定的SSH Key提交GIT ↩︎