发现每次换完电脑之后都要搜下怎么配置多个ssh-key,虽然也有收藏相关的文章,可是容易忘记之前收藏到哪里去了,所以决定把这一系列过程记录下来,下次再有需要就可以直接看了~
生成SSH-KEY
公司用:ssh-keygen -t rsa -b 4096 -C "xxx@qq.com" -f ~/.ssh/gitlab_rsa
个人用:ssh-keygen -t rsa -b 4096 -C "xxx@qq.com" -f ~/.ssh/github_rsa
-t 指定生成的密钥类型,一共有dsa | ecdsa | ed25519 | rsa这四种 -b 指定生成密钥的长度,dsa密钥的长度为1024,rsa密钥默认是2048,一般来说可以不用指定 -C 指定注释内容,会出现在生成公钥的最后面,可以是任何内容,一般用邮箱 -f 指定生成的私钥的文件位置及文件名,公钥会在同一文件夹下,不知道文件名的情况下,默认生成的是id_rsa,默认是生成在 user/.ssh文件夹下复制代码
将公钥放到gitlab 或 github
复制 xx_rsa.pub 文件的内容,添加到 gitlab 或 github 个人设置中对应的ssh keys 中即可
添加配置文件
# gitlab Host gitlab.com HostName gitlab.com User my-gitlab-name PreferredAuthentications publickey IdentityFile ~/.ssh/gitlab-rsa # github Host github.com HostName github.com User my-github-name PreferredAuthentications publickey IdentityFile ~/.ssh/github-rsa # 配置文件参数 # Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件 # HostName : 要登录主机的主机名 # User : 登录名 # IdentityFile : 指明上面User对应的identityFile路径复制代码
测试连接
ssh -T gitlab@gitlab.com 或 ssh -T git@github.com
如果在测试连接GitHub时出现了如下报错
kex_exchange_identification: read: Connection reset by peer
需要看下是否是在公司网络下进行的操作,如果是的话,那应该是因为公司网络屏蔽了GitHub。
到最后,正常进行代码提交即可