0%

Git多账号

使用SSH管理Git多账号

HTTPS 和 SSH 的区别:

  • HTTPS可以随意克隆github上的项目,而不管是谁的;而SSH则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。
  • https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入
    密码的。

生成ssh公钥

1
2
3
4
#默认
$ ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
#指定公钥位置和名称
$ ssh-keygen -t rsa -f ~/.ssh/id_github_rsa -C "xxxxx@xxxxx.com"
  • -t 指定密钥类型,默认是 rsa ,可以省略
  • -C设置注释文字,比如邮箱
  • -f 指定密钥文件存储文件名

提示:如果本地没有.ssh文件夹,则使用默认创建公钥方式,不配置,直接回车。

临时添加验证

1
2
$ ssh-agent bash
$ ssh-add id_github_rsa

配置config

~/.ssh目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)

1
2
3
4
5
6
7
8
9
10
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_github_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_github_rsa

查看所有已添加密钥

1
$ ssh-add -l

添加ssh有关信息

1
2
$ cat ~/.ssh/id_github_rsa
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。

验证是否连接成功

1
2
$ ssh -T git@gitee.com
$ ssh -T git@github.com

本文结束啦感谢您阅读