为其他仓库托管平台添加密钥

一般而言,除了在GitHub仓库外,很多公司习惯在GitLab上托管代码。因此,开发者通常会有多个密钥,分别为多个托管平台使用。

参考资料

生成密钥对

  • 使用如下命令生成一个SSH 密钥对

    ssh-keygen -t rsa -b 4096 -C "email@example.com"
    

    其中,- C标志是为了在密钥中添加注释,从而可以在众多的密钥中识别该密钥。

  • 输入密钥对的保存路径。如果不使用默认的路径(通常是~/.ssh/),则需要自定义路径,并需要给ssh客户端添加配置文件(在~/.ssh/config)来声明密钥对的路径以及相关的主机Host。

  • 最后,可以输入一个密码来保护密钥对。也可以不输入,拥有一个密码来保护密钥对更好。

使用ssh代理来管理密钥对

如果为某个托管平台如GitLab使用了非默认的密钥对路径,则需要为ssh客户端添加配置文件来指出该托管平台对应的私钥的位置。

  • 使用如下命令为ssh代理添加密钥对

    eval $(ssh-agent -s)
    ssh-add ~/.ssh/other_id_rsa
    
    

    其中, eval $(ssh-agent -s)用来在后台启动ssh代理,ssh-add ~/.ssh/other_id_rsa用来添加私钥,这里需要将~/.ssh/other_id_rsa这个路径替换为自己的私钥路径

  • 添加配置文件:OpenSSH客户端的配置文件默认在~/.ssh/config路径下(如果该文件不存在,则创建该文件)。该文件内,需要设置多个主机以及所对应的私钥路径。例如

    # GitLab.com
    Host gitlab.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/gitlab_com_rsa
    
    # Private GitLab instance
    Host gitlab.company.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/example_com_rsa
    
    

添加私钥时的问题

在使用ssh-add命令添加私钥时,可能会出现’Permissions 0644 for ‘~.ssh/id_rsa’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

这样的警告,表示私钥的权限过大,该私钥被忽略。
针对该问题,可以更改私钥的权限,使用

chmod 0600 private_key

这里将private_key更改为自己的私钥即可。

测试连接

使用以下命令来进行连接的测试

ssh -T git@github.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值