赞
踩
一个 Github 账户可以有多个 SSH-Key 与其关联。
简单来说,你用家里的电脑生成了一个 SSH-Key 设置到账户上,与此同时,你用公司的电脑也可以生成一个 SSH-Key 设置到同一个账户上。此时,你在家或者在公司都可以提交代码到仓库啦~
一台电脑(终端)可以配置多个 SSH-Key 用于多个 Git 账号。
比如说,你在公司需要用 Gitlab 做内部的开发,但是偶尔也会想用自己的 Github 账户做些个人的开发。此时,不学会配置多个 SSH-Key 寸步难行!
Github 在 2021 年 8 月 13 日开始,将在对 Git 操作进行身份验证时不再接受帐户密码,并将要求使用基于令牌(token)的身份验证。
好家伙,不会配 SSH Key,连代码都 commit 不了哦!
下面以我要在 Github 配置 SSH keys 为例。
打开您的Git bash,进入 ~/.ssh 目录,通过 ll 命令看看自个儿的电脑上有 SSH-Key 的相关文件没!
$ cd ~/.ssh
$ ls
如果显示 id_rsa 和 id_rsa.pub 文件,说明已经有SSH Key了。如果没有,那么根据步骤2生成一个!
生成一个 Github 用的 SSH-Key,其中 github_id_rsa
为密钥的文件名,~/.ssh/github_id_rsa
为密钥目录位置:
$ ssh-keygen -t rsa -C '[邮箱]' -f ~/.ssh/github_id_rsa
生成一个 Gitlab 用的 SSH-Key,其中 gitlab_id_rsa
为密钥的文件名,~/.ssh/gitlab_id_rsa
为密钥目录位置:
$ ssh-keygen -t rsa -C '[邮箱]' -f ~/.ssh/gitlab_id_rsa
在 ~/.ssh 目录下,通过 touch 命令新建 config 文件,并用 vim 编辑器打开 config 文件。
# 新建 config 文件
$ touch config
# 用 vim 编辑器打开 config 文件
$ vim config
在 config 文件 中,添加如下内容:
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
# gitlab
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_id_rsa
# 如果生成多个 SSH-Key , 则按上面的格式继续往下写
其中 Host 和 HostName 填写 Git 服务器的域名,IdentityFile 指定私钥的路径(在第二步生成 SSH-Key 时,我们已经指定该路径,拷贝过来即可)。
前往 ~/.ssh/ 目录下查看生成的文件:
生成的文件以 [xxx]_rsa
开头, [xxx]_rsa
是私钥, [xxx]_rsa.pub
是公钥。
通过 cat 命令查看公钥文件里的内容,拷贝内容放到 Github 上就可以正常使用了。
$ cat [xxx]_rsa.pub
在 Github 个人的设置页,点击 “New SSH Key” 。取个名字,把上一步获取到的 SSH Key 拷贝进去。
$ ssh -T git@github.com
这里以 Github 为例,成功会返回 Hi [用户名]!You've successfully authenticated, but GitHub does not provide shell access.
.git
文件夹里,找到 config
文件并打开,修改里面的url。本文参考了 https://gitee.com/help/articles/4229#article-header 等文章,综合做了总结。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。