参考:Generating a new SSH key and adding it to the ssh-agent
目录
目前github已经不允许使用账号密码的方式来拉取和提交代码了。可以使用下面两种方式:
一种方式是使用SSH的方式来拉取和获取
一种方式是可以使用令牌来拉取和获取
SSH配置
第一步:在本地创建一对公私钥
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
创建完成之后在 ~/.ssh 目录下查看
第二步:使用 SSH Agent 来管理密钥
手动将你要使用的私钥添加到 SSH Agent 中,使用以下命令
ssh-add ~/.ssh/id_rsa_github
查看是否添加成功
ssh-add -l
第三步:在github网站配置公钥
点击头像 - Settings - SSH and GPG Keys - New SSH Key
第四步:克隆代码时选择SSH
注意:保护好自己的私钥不要泄露
如果有多个github账号怎么配置
一、配置config
查看~/.ssh目录下是否有config文件,如果没有创建一个
touch config
我们有两个账号并且在github网站上配置好了ssh公钥
账号1:
url:git@github.com:JiangHuHiKe/JiangHuHiKe.github.io.git
公钥:id_rsa_github.pub
账号2:
url:git@github.com:zizhengblog/zizhengblog.github.io.git
公钥:id_rsa_lzz.pub
config的内容如下
# 配置 jianghuhike 账号
Host github-jianghuhike
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github
# 配置 zizhengblog 账号
Host github-zizhengblog
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_lzz
Host:为每个账号起一个别名,后续会用在url里
HostName:指定实际的主机名
User git:这是 GitHub SSH 连接的默认用户名
IdentityFile:应使用哪个私钥进行认证
二、添加到 SSH agent
配置完成后,确保你的 SSH agent 中已经添加了这些私钥:
ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_lzz
三、修改url
更新远程仓库 URL:这里用到了别名
git remote set-url origin git@github-jianghuhike:jianghuhike/jianghuhike.github.io.git
git remote set-url origin git@github-zizhengblog:zizhengblog/zizhengblog.github.io.git
错误收集
一、配置了SSh的方式拉取代码,但clone的时候仍然让输入密码
虽然配置了SSH的方式拉取代码,但并添加到 SSH 代理
// 添加到代理
ssh-add ~/.ssh/id_rsa
// 查看是否添加成功
ssh-add -l
二、Xcode不支持在config中配置别名的方式
所以要想对iOS的项目使用别名的配置,不能在xcode自带的git可视化工具内操作,无法pull和push代码。
解决方式是:
1、使用source tree 或者 终端。
2、只配置ssh,不在config文件内配置别名。
行者常至,为者常成!