git 配置多个ssh、支持多个网站GitHub、Gitlab

按需生成多个秘钥

ssh-keygen -t rsa -C your_email@github.com 生成的时候, 会让你指定key的名字, 就是这句话Enter file in which to save the key (/Users/kirin/.ssh/id_rsa):, GitHub的这个我是直接打了回车, 生成的秘钥的名字就是默认的id_rsa. 如果我打了id_codehub 那么就按照这个名字生成秘钥. 这个名字叫什么无所谓, 主要是一会儿我们会在配置文件中使用生成的私钥的地址, 自己不弄错了就好了, 当然最好还是取个好名字.

新建config 重点

在默认的.ssh文件夹下新建config文件, 没有后缀, 就叫config. 我的路径是: /Users/kirin/.ssh, 建好的文件路径是: /Users/kirin/.ssh/config.

  • 这里在于HostHostName, 这个要按照git@github.com:kirin/practice-demo.git@与:之前来填写. 这里就是 github.com, 其他的触类旁通吧!
  • IdentityFile 是刚刚生成的私钥的路径.
  • PreferredAuthentications 这里我们填选publickey, 即以公钥方式认证.
  • User 暂时不知道干啥用的..
# 配置github.com
Host github.com
    HostName github.com
    IdentityFile /Users/kirin/.ssh/id_rsa
    PreferredAuthentications publickey
    User username1

# 配置codehub.example.com
Host codehub.example.com
    HostName codehub.example.com
    IdentityFile /Users/kirin/.ssh/id_codehub
    PreferredAuthentications publickey
    User kirin

最后测试

[~/.ssh]$ ssh -T git@codehub.example.com
Welcome to GitLab, xxx

然后就好了

遇到的问题:

  • 改填私钥的地方填了公钥, 他会和你说 "你的私钥没有受到保护!", 私钥按理来说应该是只有所有者才能读的. 但是你填了公钥(默认权限644), 导致其他人也能读了, 这么说也就不安全了. 如果遇到这个提示, 注意看下是不是自己的秘钥写错了. 错误提示在下面👇:
错误提示: 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/kirin/.ssh/id_codehub.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容