前言
你最近换电脑了吗?还记得如何在本地配置多个 git ssh 连接吗?一般公司用的是自己内网部署的 gitlab 服务器进行代码管理,开发者使用的是公司的用户名和公司的邮箱,而在个人的开源项目中,我们的代码托管于 github,这个时候就需要两个或多个以上的 SSH-Key 去进行登录,方便代码的拉取与推送。
文章大纲
- 查看所有 ssh key
- 分别配置 gitlab 内网 和 github 外网 ssh
- 进行测试
第一步:查看所有 SSH-Key
打开 bash/zsh 终端:执行以下命令
$ cd ~/.ssh/ $ ls
输出如下:
KaydeMBP:~ kayliang$ cd ~/.ssh/
KaydeMBP:.ssh kayliang$ ls
config github_id-rsa.pub gitlabnei_id-rsa.pub
github_id-rsa gitlabnei_id-rsa known_hosts
第二步:生成一个 ssh-key,用于配置公司的 GitLab
在~/.ssh/目录会生成gitlab_id-rsa和gitlab_id-rsa.pub私钥和公钥。
$ ssh-keygen -t rsa -C "xxx@xxx.com" -f ~/.ssh/gitlabnei_id-rsa
查看你的 public key,我们将gitlabnei_id-rsa.pub中的内容粘帖到公司GitLab服务器的SSH-key的配置中。
# 把文件内容打印到命令行工具上,方便复制 cat ~/.ssh/gitlab_id-rsa.pub
格式如下所示,记得把整个文本包括 ssh-rsa 也复制到剪切板上。
ssh - rsa; xxxxxxxxx; xxxxx;
然后粘贴到网站的 ssh 配置中:
第三步:Github 生成一个 SSH-Key
在~/.ssh/目录会生成github_id-rsa和github_id-rsa.pub私钥和公钥。我们将github_id-rsa.pub中的内容粘帖到github服务器的SSH-key的配置中。
ssh-keygen -t rsa -C "xxxx@xxxx.com" -f ~/.ssh/github_id-rsa
第四步:在 ~/.ssh 目录下添加config配置文件用于区分多个 SSH-Key
1. 添加识别 SSH keys 新的私钥
默认只读取 id_rsa,为了让 SSH 识别新的私钥,需要将新的私钥加入到 SSH agent 中
# 查看已经添加的私钥 ssh-add -l 3072 SHA256:xxxxxxxxxx linjy@xxxx.com.cn (RSA)
$ ssh-agent bash $ ssh-add ~/.ssh/github_id_rsa $ ssh-add ~/.ssh/gitlabnei_id_rsa
这一步很重要,否则你在后面进行 git clone 拉取 ssh 地址的仓库会出现错误。
KaydeMBP:chengdu-project kayliang$ git clone ssh://git@xxxxxxx.amazonaws.com.cn:5337/xdata/SH2019GH109/chengdu-natural-resources-cli3.git
Cloning into 'chengdu-natural-resources-cli3'...
no such identity: gitlabnei_id-rsa: No such file or directory
git@xxxxxxx.amazonaws.com.cn: Permission denied (publickey).
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
2. 添加 config 配置文件
vi ~/.ssh/config
设置文件内容如下,这里要注意的是:配置的信息必须跟你在仓库界面的 ssh 的地址一致,因为有时候 http 地址跟 ssh 地址的端口是不一样的。
地址:ssh://git@xxxxx.amazonaws.com.cn:5337/xdata/SH2019GH109/xxxxx.git
根据上面的地址可以进行配置如下:
# gitlab Host xxxxx.amazonaws.com.cn # 这里是 ssh 地址的 ip PreferredAuthentications publickey IdentityFile ~/.ssh/gitlabnei_id-rsa Port 5337 # 这里是 ssh 地址的端口 # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id-rsa # 更多配置 ...
配置文件参数:
- Host:可以看作是一个你要识别的模式,对识别的模式,进行配置对应的主机名和 ssh 文件。
- HostName: 要登录主机的主机名。
- User: 登录名。
- IdentityFile: 指明上面 User 对应的 identityFile 路径。
- Port: ssh 端口
第五步:测试
测试 github 外网 ssh 地址
ssh -T git@github.com
输出:
Hi Jecyu! You've successfully authenticated, but GitHub does not provide shell access.
测试公司内网 ssh 地址
ssh -T git@xxxx.amazonaws.com.cn Welcome to GitLab, @linjy!
就表示成功的连接公司的 gitlab。
最后
使用 git clone 分别获取你的 github 个人项目,以及获取 gitlab 的公司内网项目:
git clone ssh://xxxx.amazonaws.com.cn:5337/xdata/SH2020GH036/xxxx.git cd my-project touch README.md git add README.md git commit -m "add README" git push -u origin master
因为个人项目和公司项目的账户和邮箱都不一样,记得在各自的仓库下进行配置,这样提交时的 commit 记录的用户和邮箱都是正确的,当然这一步对你是否能用 ssh 提交和获取不影响的,只是为了看 commit 记录的时候更清晰。
git config user.name xxxx git config user.email xxxx@xxx.com
小结
本文是笔者在实践中的记录,也参考了一些网上优秀的作者经验,如有错误请指出。
参考资料
更进一步阅读,了解 SSH 知识:https://segmentfault.com/q/1010000000835302 和 《SSH,The Secure Shell》 书本。
git 手册
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]