背景
在公司一直使用gitlab进行开发,后来想着自己弄一个github保存一下自己的代码,方便以后拿来用。生成gitlab秘钥
默认你已经注册了gitlab/github账户,以我自己为例,公司项目用的gitlab,自己代码托管在github。先进行公司账号的设置:
本地生成ssh keys命令:ssh-keygen -t rsa -C "注册的gitlab邮箱"
,生成的公司秘钥会提示是否需要重命名,公司gitlab的秘钥我们就使用默认名称,直接回车跳过,另外还会提示你设置密码,设置密码的话后续登陆会比较麻烦,也直接跳过。成功后大概是这样的:
查看 .ssh/目录,可以看到公私秘钥已经生成,名称分别为id_rsa.pub、id_rsa
执行命令查看公钥内容:cat ~/.ssh/id_rsa.pub
,或者直接用nano
编辑期打开id_rsa.pub
。公钥大概是这个样子:
将这部分代码添加到到gitlab
账户的的SSH Keys
中即可。
生成github秘钥
终端执行命令:ssh-keygen -t rsa -C "注册的github邮箱"
,这次一定要注意,对生成定的秘钥进行重命名,这里暂且重命名为id_rsa_home
,同样不设置密码。可以看到生成的公私秘钥已经分别被重命名为id_rsa_home.pub
和id_rsa_home
。
可以查看公钥里面的内容:cat ~/.ssh/id_rsa_home.pub
不要忘记将其拷到github的SSH Keys里~
gitlab和github的秘钥是分开生成了,可怎么让这两份秘钥分别对应到相应的远程仓库呢?就是让id_rsa.pub
认得gitlab
,让id_rsa_home.pub
认得github
。既然不能自动识别,那就只好手动设置了:
配置config
在.ssh/目录下新建config文件:touch config
,通过nano编辑器进行如下配置:
其中Host
对应的名称是一个别名,命名可以随意,用来进行远程连接,当然使用真实的主机名称也是可以的。HostName
和IdentityFile
就是各自主机名称以及对应的秘钥文件了~
这样配置之后,两份秘钥也就对应到各自相应的仓库上了。通过设置别名,也就可以设置任意多的账户了~
最后利用别名检测下配置是否成功~
检测
检测gitlab
连接,如果提示是否建立连接,直接yes就行:
检测github
连接:
不报错的话,就说明设置成功了!