1.单用户
1.1 查看是否已经生成公钥、秘钥
cd ~/.ssh | ls
如果没有id_rsa_github和id_rsa_github.pub文件(id_rsa_github、id_rsa_github.pub文件名称个人命名的,可以起成别的名称),则生成;
1.2 生成公钥、私钥
ssh-keygen -t rsa -C "xxx@qq.com"
然后提示
Enter a file in which to save the key (/Users/zq/.ssh/id_rsa): [Press enter], 两次生成需要不同的密钥文件。
Enter a file in which to save the key (/Users/zq/.ssh/id_rsa): id_rsa_github
当提示输入密码信息时,直接回车跳过,否则每次拉代码都需要输入密码。
1.3 添加私钥到本地(新密钥添加到SSH agent中)
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa_github
添加后可以使用 ssh-add -l 命令进行查看。
1.4 配置本地密钥
$ cd ~/.ssh
$ vim config
config文件内容如下
host github.com # 别名,自定义
Hostname github.com # 托管网站的域名
User "用户名" # 用户名
IdentityFile ~/.ssh/id_rsa_github # 使用的密钥文件(公钥)
config文件起初是没有的,vim过后就有了。
1.5 添加ssh keys
在github上添加ssh keys;把id_rsa_github.pub的内容复制到如下图界面
1.6 测试配置是否成功
$ ssh -T git@github.com
会自动在.ssh目录生成known_hosts文件把私钥配置进去
注意:github.com为config配置文件中host 后的名称
1.7 克隆代码
需要克隆的地址
$ git clone git@github.com:username/objectname.git
2.多用户
如果配置多个,按照步骤1,进行配置。
3.Git如何查看、切换账户
3.1查看当前git用户名、邮箱
$ git config user.name 查看用户名
$ git config user.email 查看用户邮箱
3.2修改用户名和邮箱命令
$ git config --global user.name "Your_username"
$ git config --global user.email "Your_email"
3.3 删除用户名和邮箱
$ git config --global --unset user.name
$ git config --global --unset user.email
多个账户需要在每个项目中分别配置用户名和邮箱,如果有配置过全局用户名和邮箱,可以删除。
注意:user.name/email后面千万记得加空格,否则你就是提交了,Git也不会提醒你配置出错
遇到的问题
问题1.如果出现Could not open a connection to your authentication agent.,执行下面的命令
ssh-agent bash
疑惑1.在测试的时候,我没有用
$ git config --global user.name "Your_username"
$ git config --global user.email "Your_email"
进行切换账户,还是能从不同的git仓库中clone代码,能提交到不同的git仓库中去,不知道为什么?有大神知道原理的希望能解答下。
参考
Windows下Git多账号配置,同一电脑多个ssh-key的管理
一台电脑上的git同时使用两个github账户