github 管理多个ssh key

本文介绍如何在Windows环境下为GitHub和公司GitLab配置不同的SSH Key,包括生成SSH密钥对、添加私钥到SSH代理以及配置SSH客户端的过程。

转自:http://www.cnblogs.com/fanyong/p/3962455.html


作者:樊勇
出处:http://www.cnblogs.com/fanyong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
我的联系方式:fanyong@gmail.com
个人独立博客:www.fy98.com




以前只使用一个 ssh key 在github上提交代码,由于工作原因,需要再添加一个ssh key在公司的 gitlab上提交代码,下面记录下配置过程,防止遗忘。
说明下我的环境是 Win7 + msysgit + GitBash, 相信 *nux + bash 也是同样的道理。

生成并添加第一个ssh key

第一次使用ssh生成key,默认会在用户~(根目录)下生成 id_rsa, id_rsa.pub 2个文件;所以需要添加多个ssh key时也会生成对应的私钥和公钥。

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

在Git Bash中执行这条命令一路回车,会在 ~/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub 两个文件,用文本编辑器将 id_rsa_pub 中的内容复制一下粘贴到github(gitlab)上。

生成并添加第二个ssh key

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

注意不要一路回车,要给这个文件起一个名字, 比如叫 id_rsa_github, 所以相应的也会生成一个 id_rsa_github.pub 文件。

目录结构如下:

添加私钥

$ ssh-add ~/.ssh/id_rsa
$ ssh-add ~/.ssh/id_rsa_github

如果执行ssh-add时提示"Could not open a connection to your authentication agent",可以现执行命令:

$ ssh-agent bash

然后再运行ssh-add命令。

# 可以通过 ssh-add -l 来确私钥列表
$ ssh-add -l

# 可以通过 ssh-add -D 来清空私钥列表
$ ssh-add -D

修改配置文件

在 ~/.ssh 目录下新建一个config文件

touch config

添加内容:

# gitlab
Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa

# github
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_github

测试

$ ssh -T git@github.com

输出
Hi user! You've successfully authenticated, but GitHub does not provide shell access. 就表示成功的连上github了

<think>嗯,用户想知道如何在GitHub上添加SSH Key。首先,我需要回忆一下相关的步骤。记得SSH Key是用于安全连接GitHub和本地机器的,避免每次都要输入密码。根据提供的引用,特别是引用[1]和[2],应该涉及生成SSH Key,然后将其添加到GitHub账户的设置中。 首先,用户需要生成SSH Key对吧?在终端里用ssh-keygen命令,可能需要指定类型,比如ed25519,这样更安全。然后,查看公钥的内容,复制下来。接着,到GitHub的账户设置里找到SSH and GPG keys的部分,添加新的SSH Key,把公钥内容粘贴进去。 不过要注意的是,引用[3]提到如果需要为不同的账户管理仓库,可能需要生成新的SSH Key,这时候可能需要配置不同的配置文件,比如在~/.ssh/config里指定不同的Host和对应的密钥。用户可能遇到的问题是权限问题,比如私钥的权限设置不正确,导致连接被拒绝,所以需要chmod 600 ~/.ssh/id_ed25519这样的命令来修正。 另外,引用[4]提到使用gh auth status来检查登录状态,这可能和GitHub CLI相关,但用户的问题主要是添加SSH Key,所以可能不需要用到CLI工具,直接用网页界面就可以了。不过如果用户使用CLI的话,可能会有更快捷的方式,比如gh ssh-key add命令,但需要确认是否支持。根据引用[4],Git操作配置为使用SSH协议,这可能意味着添加SSH Key后,Git会自动使用它进行认证。 测试连接的时候,用ssh -T git@github.com,如果显示成功认证,说明配置正确。可能出现的错误信息需要帮助用户排查,比如权限问题、密钥未正确添加等。此外,引用[5]提到Azure OpenAI的密钥轮换,虽然和GitHub无关,但可能用户对密钥管理有更深的需求,不过当前问题不需要涉及这部分。 总结步骤应该是:生成密钥、复制公钥、添加到GitHub账户、测试连接。同时提醒用户注意文件权限和可能的多个账户情况下的配置。确保每个步骤都清晰,用户能逐步操作。</think>### 如何在GitHub上添加SSH Key? #### 步骤说明 1. **生成SSH密钥对** 打开终端(Linux/macOS)或Git Bash(Windows),输入以下命令: ```bash ssh-keygen -t ed25519 -C "your_email@example.com" ``` - 按提示选择密钥保存路径(默认路径为 `~/.ssh/id_ed25519`) - 设置密码(可选,可跳过直接按两次回车) 生成成功后,公钥文件为 `~/.ssh/id_ed25519.pub`,私钥文件为 `~/.ssh/id_ed25519`[^2][^3]。 2. **复制公钥内容** 使用以下命令查看并复制公钥: ```bash cat ~/.ssh/id_ed25519.pub ``` 公钥内容格式类似: ``` ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBm... your_email@example.com ``` 3. **将公钥添加到GitHub账户** - 登录GitHub,点击右上角头像 → **Settings** → **SSH and GPG Keys** → **New SSH Key** - 填写标题(如“My Laptop”),粘贴复制的公钥内容到 `Key` 字段 - 点击 **Add SSH Key** 完成添加[^1][^4]。 4. **验证连接** 输入以下命令测试SSH连接是否成功: ```bash ssh -T git@github.com ``` 若显示 `Hi username! You've successfully authenticated...` 则配置成功。 #### 常见问题 - **权限问题**:确保私钥文件权限为 `600`,公钥为 `644`: ```bash chmod 600 ~/.ssh/id_ed25519 chmod 644 ~/.ssh/id_ed25519.pub ``` - **多账户管理**:若需为不同账户使用不同密钥,需在 `~/.ssh/config` 中配置多Host,例如: ```bash Host github-work HostName github.com User git IdentityFile ~/.ssh/work_key ```[^3] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值