有时候需要在一台电脑使用多个git平台(Gitee、GitHub、Gitlab...)或者一个平台多个不同账号,比如想同时配置公司git和个人的git,提交代码时提交到对应的平台/账号的代码仓库且互不影响。这时候需要配置不同的SSH key。
1. 生成SSH key
- 默认情况下,用户的 SSH 密钥存储在其
~/.ssh
目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:
$ cd ~/.ssh
$ ls
authorized_keys2 id_dsa known_hosts
config id_dsa.pub
- 该目录中一般有一对以
id_dsa
或id_rsa
命名的文件,其中一个带有.pub
扩展名。.pub
文件是你的公钥,另一个则是与之对应的私钥。 如果找不到这样的文件(或者根本没有.ssh
目录),你可以通过运行ssh-keygen
程序来创建它们。
$ ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/id_rsa_github
-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置密钥注释,如邮箱。
-f 设置密钥文件的文件名。
注意:如果多次生成私钥公钥则需要重新命名,否则会覆盖之前的同名密钥文件。
2. 配置公钥到远端git
以GitHub为例:
- 点击右上角头像,选择下拉菜单中的Settings
- 找到SSH and GPG keys
- New SSH key,输入一个标题,把本地的公钥
.pub
文件内容全选复制粘贴到文本框里
3. 配置config文件
- 在
~/.ssh
目录下,如果没有config文件可以通过touch ~/.ssh/config
指令创建config文件,如果有则直接编辑这个文件:
$ touch ~/.ssh/config
- 修改config文件的内容,配置完以后,github的仓库会使用
~/.ssh/id_rsa_lpk_github
密钥进行验证,gitee会使用~/.ssh/id_rsa_lpk_gitee
密钥进行验证。
# github
Host github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_lpk_github
User lpk
# gitee
Host gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_lpk_gitee
User lpk
文件参数:
Host
:主机名
User
:指定登录的用户名,默认为git
HostName
:指定要登录的真实主机名
PreferredAuthentications
:指定客户端尝试身份验证方法的顺序
IdentityFile
:指定使用的密钥文件
其他参数配置详见 点击这里
4. 测试连接
- 执行以下指令测试能否成功连接
$ ssh -T [email protected]
- 出现以下结果表示连接成功
至此,配置完毕,可以提交代码到不同平台了
标签:Git,账号,平台,rsa,github,ssh,config,id,密钥 From: https://www.cnblogs.com/lpkshuai/p/17313675.html