Loading

同一电脑管理多个SSH KEY

一般情况下电脑上创建 ssh key 默认都是 id_rsaid_rsa.pub ——一对公私钥,用这一个 ssh key 登录多个代码协同网站

ssh ( Secure Shell: 安全外壳协议) 的缩写,建立在应用层和传输层基础上的安全协议,可用于免密登录

之前创建的 ssh key ,既用在自己的 GitHubGitee 等网站,也用在公司搭的 Gitlab 上,不太合适,因此考虑创建个人的 key 和公司的 key 两套共用方案。

1、创建 ssh key

先切换到C盘的 ~/.ssh/ 目录下,或者用 ls -a ~/.ssh 查看是否有已生成的密钥(我之前有配置默认的 id_rsa

已有的密钥

现在先删除已有的密钥,重新生成两套密钥

ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
# -t 指明类型。默认是rsa,这里用更短的ed25519,默认生成的密钥名称就是:id_类型
# -C 指定注释。大部分教程都是用邮箱,主要是为了便于标识,其实用啥都行
默认生成的密钥

在命令行中执行上述命令,按照提示设置密码,修改密钥名称后,回车生成密钥

生成的密钥如图

2、添加 ssh key 到仓库

  1. cestc-61 密钥添加到个人用的 GithubGitee ,将 cestc-work 密钥添加到公司用的 Gitlab ,然后 ssh -T git@github.com 或者 ssh -T gir@公司gitlab地址 测试连接

  2. 使用时由于有不同的密钥,因此比如拉取 Github 上的仓库到本地时,需要手动指定用哪个密钥,或者每次会话开一个 ssh-agent 缓存密钥信息,这样过于麻烦,可以在 config 文件中配置

  3. .ssh 文件夹下创建 config(不需要后缀),然后编辑

    # github
    Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/cestc-61
    
    # Host 						自定义的服务别名
    # HostName					远程git地址
    # User						登录用户 可不填
    # PreferredAuthentications	设置优先认证方式
    # IdentityFile				私钥路径
    # 有多个代码平台就添加多个
    

    拉取代码时用的是别名 Host ,因此最好 HostNameHost 一致

    image-20221113233716525
  4. 之后就可以正常拉取代码操作了。

posted @ 2022-11-16 11:43  61hhh  阅读(188)  评论(0编辑  收藏  举报