Git 配置SSH,多个 Github 账号配置不同的SSH KEY(一)

简介: Git 配置SSH,多个 Github 账号配置不同的SSH KEY

前言


首先做个说明


  1. 生成一对默认的私钥公钥,私钥自己客户端留着用,公钥可以给多个平台用。
  2. 多对私钥公钥,主要是应对一个平台多个账号的情况。当然你想每个平台使用不同的私钥公钥也是可以的。
  3. 多次生成私钥公钥需要自己重新命名,否则会覆盖之前的。

642915f608ef3bb20b00061a5ac70654_0bd4488f22b942d49a1364981024faff.png


Git 配置 SSH


一、查看是否已经生成过/是否应存在了私钥公钥


进入 用户/.ssh 目录


$ cd ~/.ssh


如果找不到目录或者目录中没有东西,证明以前没有生成过。


或者直接使用命令来查看


$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist


检查目录列表,看看您是否已经拥有公共SSH密钥。默认情况下,GitHub受支持的公钥的文件名如下之一。


id_rsa.pub
id_ecdsa.pub
id_ed25519.pub


提示:如果您收到~/.ssh不存在的错误,则在默认位置没有现有的SSH密钥对。您可以在下一步创建新的SSH密钥对。


二、生成密钥对(私钥公钥)


两种方式,一种是生成的时候直接添加好路径;另一种是不带路径,需要第二步添加路径或使用默认路径。


ssh key命名的第一种方式:

$ ssh-keygen -t rsa -C "youremail@yourcompany.com" -f ~/.ssh/id_rsa_github


代码参数含义:

-t 指定密钥类型,默认是 rsa ,可以省略。

-C 设置注释文字,比如邮箱。

-f 指定密钥文件存储文件名。


ssh key命名的第二种方式:

$ ssh-keygen -t rsa -C "youremail@xxx.com"


以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码。


按回车后:


Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxx/.ssh/id_rsa): id_rsa_github(取个名字)
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in 
id_rsa_github.
Your public key has been saved in 
id_rsa_github.pub.


最好每次生成时都给SSH Key取个名字,这样后面在管理时自己也一目了然。我这里的格式是id_rsa_项目名_git提供方,我生成的所有key都遵循这个规则命名。建议你也有你自己的一种命名方式,并且保持统一。如果不取名字,默认的是id_rsa,如果后面生成时不命名,会把这个覆盖掉。密码可以不设置,免得每次提交时还要输入一次,安全性自己衡量吧。第一次生成key时,会在~目录下创建一个.ssh目录。


附:

键入ssh-keygen -t,然后是键类型和可选注释。此注释包含在创建的.pub文件中。您可能想使用电子邮件地址进行注释区分。


例如,对于ED25519:


ssh-keygen -t ed25519 -C "<comment>"


对于2048位RSA:


ssh-keygen -t rsa -b 2048 -C "<comment>"
https://docs.gitlab.com/ee/ssh/#add-an-ssh-key-to-your-gitlab-account


三、将SSH密钥添加到ssh代理中


ssh服务器默认是去找id_rsa,现在需要把这个key添加到ssh-agent中,这样ssh服务器才能认识id_rsa_TestSSH_github。


  • 在后台启动ssh-agent。
$ eval $(ssh-agent -s)
> Agent pid 59566


根据您的环境,您可能需要使用其他命令。例如,在启动ssh-agent之前,您可能需要通过运行sudo -s -H来使用root访问,或者您可能需要使用exec ssh-agent bash或exec ssh-agent zsh来运行ssh-agent。


  • 如果您使用的是macOS Sierra 10.12.2或更高版本,则需要修改~/.ssh/config文件,以自动将密钥加载到ssh代理中,并将密码存储在钥匙串中。


多个Github账号配置不同的 ssh


1.首先,检查您的~/.ssh/config文件是否存在于默认位置。

$ open ~/.ssh/config
> The file /Users/you/.ssh/config does not exist.


2.如果文件不存在,请创建文件。

$ touch ~/.ssh/config


打开您的~/.ssh/config文件,然后修改文件以包含以下行。如果您的SSH密钥文件的名称或路径与示例代码不同,请修改文件名或路径以匹配当前设置。


Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa_github


注意:如果您选择不向密钥添加密码,则应省略UseKeychain行。


注意:如果您看到这样的错误

/Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain

Host *部分添加额外的配置行:

Host *

IgnoreUnknown UseKeychain


**注意:**关于config文件,同时参考下列文件


将不同账号的工程图服务器与ssh-key关联


# 添加config配置文件
# 配置文件参数
# Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
# HostName : 要登录主机的主机名
# User : 登录名
# IdentityFile : 指明上面User对应的identityFile路径
#thub user(first@email.com)
Host github1
 HostName git.some.com/
 User git
 IdentityFile /Users/xxx/.ssh/id_rsa
# second user(second@email.com)
 # 建一个github别名,新建的帐号使用这个别名做克隆和更新
Host github2
 HostName github.com
 User git
 IdentityFile /Users/xxx/.ssh/id_ras_bill_github

相关文章
|
1月前
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
186 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
1月前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
85 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
30天前
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
39 0
|
2月前
|
移动开发 jenkins 持续交付
jenkins配置git
通过上述步骤,您可以在 Jenkins 中成功配置 Git,从而实现自动拉取代码并进行构建和部署。这些配置不仅提高了开发效率,还保证了代码的连续集成和交付。确保每一步配置正确,以避免在实际使用中遇到问题。
129 1
|
3月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
130 2
|
3月前
|
Linux 网络安全 开发工具
IDEA如何配置git和github
【11月更文挑战第14天】本指南详细介绍了如何在 IntelliJ IDEA 中配置 Git 和 GitHub,包括检查和设置 Git 路径、测试配置,以及通过 SSH 或 HTTPS 方式配置 GitHub 仓库的具体步骤。完成配置后,用户可在 IDEA 中轻松进行版本控制操作。
473 0
|
数据安全/隐私保护
一台电脑绑定两个Github账号
一台电脑绑定两个Github账号
205 0
一台电脑绑定两个Github账号
|
4月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
133 3
|
6月前
|
存储 安全 Java
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
在一次意外中,作者因三年前将测试代码遗忘在GitHub上而遭遇了代码被他人fork的问题。为解决这一危机,作者详细介绍了如何通过GitHub的DMCA下架通知流程安全删除敏感代码,包括处理私人信息和商标侵权的具体步骤。本文不仅提供了实用的操作指南,还强调了及时响应的重要性,帮助读者避免类似风险
153 1
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
|
6月前
|
SQL JavaScript 前端开发
Github 2024-08-05 开源项目周报 Top15
根据 Github Trendings 的统计,本周(2024年8月5日统计)共有15个项目上榜。以下是根据开发语言汇总的项目数量: - Go 项目:4个 - JavaScript 项目:3个 - Python 项目:3个 - Java 项目:2个 - TypeScript 项目:2个 - C 项目:1个 - Shell 项目:1个 - Dockerfile 项目:1个 - 非开发语言项目:1个
212 2

热门文章

最新文章