Mac 下配置多个SSH Key最新教程

2019-11-17  本文已影响0人  Riven2018

有时候我们需要在设备上同时使用多个git代码托管平台来管理代码,比如 githubgitlab...,这时光靠生成一份 SSH Key 已经不能满足需求,所以下面介绍方法如何使用,以及遇到的一些问题的解决方法

1.打开终端,切换到系统的 SSH 目录下

cd ~/.ssh

2.生成自己 Github 的 SSH Key

ssh-keygen -t rsa -C "#自己Github账号" -f github_rsa

3.输入 生成的 rsa 文件 密码,可以回车跳过


按照相同的步骤,可以创建 gitlabgerritgitee 上的 SSH key。


然后下好之后,在.ssh 文件里,ls 一下看看有没有 config 文件,没有的话,执行 :
vim config

正常操作下,以 githubgitlab 为例,按照下面这段格式来写就可以了:


# github
Host github
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa

# gitlab
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_rsa

Host 是别名。只是为了区分 githubgitlab 等,为了方便使用,建议和HostName 一致,这样在 clone git 的时候不用考虑修改 hostname

接着测试一下是否已经打通,使用 ssh -T #Host (Host 就为config 里的 Host ):


ssh -T github

Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

github 成功

ssh -T gitlab.com

Welcome to GitLab, @xxx!

gitlab 连接成功

如果只是为了管理自己的账号,上面这些操作完就可以了。但是如果涉及到公司的账号,对应的域名可能就会有所改变。比如 gitlab 上的公司域名可能是 168.168.168.10:8080,那在 config 文件里,就需要进行对应的修改:

# gitlab
Host gitlab.com
Port 8080
HostName 168.168.168.10
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_rsa

注意这里加上了端口号 Port

这样也就能进行正常的操作了。


可能有些人在这步的时候还会出现 xxx@gitlab.com:Permission denied (publickey).的问题, 设置一下默认 user 即可:

# gitlab
Host gitlab.com
Port 8080
HostName 168.168.168.10
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_rsa
User git

如果像 gerritUser 需要填 gerrit 帐号的用户名


修改 ssh key 文件密码:

ssh-keygen -p

这时会出现: Enter file in which the key is (/Users/#username/.ssh/id_rsa): 这时需要填上要修改密码的文件,不填系统默认修改 id_rsa 这个文件,接着回车设置密码即可。


针对不同的git管理,在对应的本地仓库里,使用对应的邮箱:

git config --local user.email #对应的邮箱

如果要设置全局邮箱,:

git config --global user.email #对应的邮箱

注意,邮箱设置成和 git 管理平台的后台设置的一样的

上一篇 下一篇

猜你喜欢

热点阅读