同一台主机配置多个ssh key

同一台主机配置多个ssh key

生成ssh key命令

ssh-keygen -C "xxx@xxx.com"

提示输出保存key的名字和路径

Enter file in which to save the key (/Users/caichenghan/.ssh/id_rsa): 

我们可以自己定义

/Users/yourusername/.ssh/id_rsa_github

在对应的目录下我们可以看到生成对应的id_rsa_githubid_rsa_github.pub文件,将对应的pub文件复制到远程仓库进行保存即可

增加配置文件config

为了使得不同的远程仓库使用不同的ssh key进行,我们需要新建一个config文件来对不同的hostname指定不同的ssh key文件

# 添加config配置文件
# 文件内容如下:

# github.com - mylove@163.com
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile C:/Users/mylove/.ssh/id_rsa_github_mylove
    User mylove

# e.coding.net - mylove@163.com
Host e.coding.net
    HostName e.coding.net
    PreferredAuthentications publickey
    IdentityFile C:/Users/mylove/.ssh/id_rsa_coding_mylove
    User mylove

# gitee.com - mylove@163.com
Host gitee.com
    HostName gitee.com
    PreferredAuthentications publickey
    IdentityFile C:/Users/mylove/.ssh/id_rsa_gitee_mylove
    User mylove
	
# gitlab.com - mylove@163.com
Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile C:/Users/mylove/.ssh/id_rsa_gitlab_mylove
    User mylove

新增一个远程仓库和本地key的对应关系我们只要在config文件中增加一个host属性即可

<think>首先,用户的问题是关于通过SSH克隆仓库并配置SSH Key的。用户说:"我想通过 SSH 克隆仓库并需要配置 SSH Key 的方法 请问如何通过 SSH 克隆代码仓库 配置 SSH Key"。我需要基于系统指令来回答。 系统指令包括: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题。 - 参考提供的引用内容。 提供的引用: - 引用[1]: 生成密钥、后启动ssh代理、添加密钥到github账号、克隆代码仓库。 - 引用[2]: 在Windows环境下设置SSH克隆GitHub仓库,包括生成SSH密钥、启动SSH代理。 - 引用[3]: 关于https和SSH的区别,SSH需要添加SSH key。 用户的问题是关于配置SSH Key来通过SSH克隆仓库的。所以,我需要提供一个清晰的、逐步的指南,基于这些引用。 回答结构: 1. **介绍**:简要解释SSH克隆的优势和为什么需要配置SSH Key。 2. **步骤**:详细步骤,包括生成SSH Key、添加密钥到GitHub、克隆仓库。 3. **引用**:在适当的地方添加引用标识。 4. **相关问题**:生成相关问题。 确保使用中文回答。 步骤基于引用: - 生成SSH密钥:使用ssh-keygen命令。 - 启动SSH代理:在后运行ssh-agent。 - 添加密钥到GitHub:复制公钥并添加到GitHub账户的SSH设置。 - 克隆仓库:使用SSH URL克隆。 引用[1]提到:1.生成密钥 2.后启动ssh代理 3.添加密钥 4.克隆代码仓库。 引用[2]类似,但针对Windows。 引用[3]强调SSH需要密钥和权限。 我将编写一个通用的指南,不特定于Windows,但参考引用。 在回答中,自然地添加引用标识。例如,在提到步骤时,说"参考引用[1]"。 最后,生成相关问题。 现在,构建回答: **标题**:如何通过SSH克隆代码仓库并配置SSH Key **内容**: 1. **介绍**:SSH克隆比HTTPS更安全,不需要每次输入用户名和密码[^3]。 2. **步骤**: - **生成SSH密钥**:使用命令`ssh-keygen -t rsa -b 4096 -C "your_email@example.com"`生成密钥对[^1][^2]。 - **启动SSH代理**:运行`eval "$(ssh-agent -s)"`启动代理,并添加私钥[^1][^2]。 - **添加公钥到GitHub**:复制公钥内容(~/.ssh/id_rsa.pub),粘贴到GitHub账户的SSH设置中[^1][^3]。 - **克隆仓库**:使用`git clone git@github.com:username/repo.git`克隆仓库[^1][^3]。 3. **验证**:测试连接`ssh -T git@github.com`。 4. **相关问题**:生成几个相关问题。 确保语言流畅,使用中文。 数学表达式:在这个上下文中,可能没有数学表达式,但如果有,比如在命令中,我会处理。但命令是代码块,不是数学。 在示例中,有代码块,如Python代码。所以,我应该使用代码块来显示命令。 系统指令说:"所有行内数学表达式...必须使用$...$格式",但命令不是数学表达式,所以直接用代码块。 在回答中,使用代码块如示例所示。 最后,生成相关问题: - 基于主题,如SSH配置、GitHub设置、问题解决。 相关问题示例: 1. 如何测试SSH连接是否成功? 2. 如果SSH克隆失败,如何排查问题? 3. 如何管理多个SSH密钥? 现在,写出完整回答。</think>### 如何通过 SSH 克隆代码仓库并配置 SSH Key 通过 SSH 克隆 GitHub 仓库比 HTTPS 方式更安全高效,因为它避免了每次操作时输入用户名和密码,只需配置一次 SSH Key 即可[^3]。下面我将以清晰步骤指导您完成整个过程。本指南基于通用环境(如 Linux 或 macOS),但原理适用于 Windows(需使用 Git Bash)。确保您已安装 Git 和 SSH 客户端。 #### 步骤 1: 生成 SSH 密钥 SSH Key 是一对加密密钥(公钥和私钥),用于身份验证。公钥添加到 GitHub,私钥存储在本地。 - 打开终端(或 Git Bash),输入以下命令生成密钥: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 替换为您的 GitHub 邮箱 ``` - 系统会提示保存位置(默认 `~/.ssh/id_rsa`),按 Enter 接受。 - 设置一个安全密码(可选,但推荐增强安全性)。 生成后,公钥在 `~/.ssh/id_rsa.pub`,私钥在 `~/.ssh/id_rsa`。确保不要泄露私钥[^1][^2]。 #### 步骤 2: 启动 SSH 代理并添加密钥 SSH 代理在后管理密钥,简化连接过程。 - 启动代理: ```bash eval "$(ssh-agent -s)" # 启动代理,输出类似 "Agent pid 12345" ``` - 添加私钥到代理: ```bash ssh-add ~/.ssh/id_rsa # 如果设置了密码,会提示输入 ``` 这一步确保后续操作无需重复输入密钥密码[^1][^2]。 #### 步骤 3: 添加公钥到 GitHub 账户 将公钥上传到 GitHub,授权您的设备访问。 - 复制公钥内容: ```bash cat ~/.ssh/id_rsa.pub # 复制输出的全部内容 ``` - 登录 GitHub,进入 **Settings > SSH and GPG keys > New SSH key**。 - 粘贴公钥,设置标题(如 "My Laptop"),保存。 注意:只有仓库拥有者或管理员才能添加 SSH Key,否则无法克隆[^1][^3]。 #### 步骤 4: 通过 SSH 克隆仓库 现在您可以使用 SSH URL 克隆仓库。 - 在 GitHub 仓库页面,点击 "Code",选择 "SSH" 并复制 URL(格式:`git@github.com:username/repo.git`)。 - 在终端运行克隆命令: ```bash git clone git@github.com:username/repo.git # 替换为您的仓库 URL ``` 首次连接时,系统会询问是否信任主机,输入 `yes` 继续。克隆成功后,即可操作仓库[^1][^3]。 #### 验证连接 测试 SSH 连接是否正常: ```bash ssh -T git@github.com # 成功时会显示 "Hi username! You've successfully authenticated..." ``` 如果失败,检查密钥权限(`chmod 600 ~/.ssh/id_rsa`)或重新添加公钥。 ### 注意事项 - **SSH vs HTTPS**:SSH 要求您拥有仓库权限,且 push 时无需用户名;HTTPS 则允许任何人克隆,但每次 push 需验证[^3]。 - **安全性**:定期更新密钥,避免在多设备共享同一密钥。 - **问题排查**:连接失败时,运行 `ssh -vT git@github.com` 查看详细日志。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值