有多个git项目要用多个秘钥

本文介绍了如何为不同的git项目配置多个SSH密钥,通过在~/.ssh/config文件中设置Host、HostName、User和IdentityFile参数,实现按项目切换SSH密钥。例如,配置'authmanage'和'demo'两个项目的SSH密钥,并通过指定Host名称进行clone操作。此外,还提及了生成SSH私钥公钥的命令。
在~/.ssh目录下新建文件config,格式如下


Host "authmanage"
HostName "code.youkuaiyun.com"
User "git"
IdentityFile "C:/Users/WangJun/.ssh/id_rsaAuthManage"

Host "demo"
HostName "code.youkuaiyun.com"
User "git"
IdentityFile

### 如何生成多个SSH密钥 为了生成多个SSH密钥,可以按照以下方法操作。每次创建新的密钥对时,可以通过指定不同的文件名来区分各个密钥。 #### 创建第一个SSH密钥 运行 `ssh-keygen` 命令,并为其提供一个唯一的名称以便于识别: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 此命令会提示用户输入保存位置和密码短语(passphrase),默认情况下它会被存储在 `~/.ssh/id_rsa` 中[^1]。如果要为该特定密钥分配其他路径,则可以在交互过程中手动定义新目录及其对应的文件名。 #### 添加额外的SSH密钥 对于第二个或者更多数量的密钥来说,重复上述过程即可,只需确保给每一对都赋予独一无二的名字。例如: ```bash ssh-keygen -t ed25519 -f ~/.ssh/work_key -C "work_account@example.org" ``` 这里我们指定了 `-f` 参数直接设定了输出文件的位置与名字(work_key),这样就避免了覆盖已存在的默认私钥(id_rsa)。 --- ### 配置SSH客户端以支持多把钥匙 当拥有了不止一把SSH密钥之后,就需要告诉 SSH 客户端什么时候应该使用哪一把。这通常通过编辑配置文件实现——即位于家目录下的 `.ssh/config` 文件。 下面是一些例子展示如何针对不同主机分别设定相应的公/私钥组合: ```plaintext Host github-personal HostName github.com User git IdentityFile ~/.ssh/personal_key Host bitbucket-work HostName bitbucket.org User git IdentityFile ~/.ssh/work_key ``` 在这个例子中,“github-personal” 和 “bitbucket-work” 是自定义别名;实际连接的时候只需要像平常一样 ssh 到这些别名上就可以了,比如 `git clone git@github-personal:username/repo.git` 就能自动加载正确的密钥[^2]。 另外还可以利用环境变量 `$HOME/.ssh/environment` 来动态调整当前 session 下使用的 key 对象,不过这种方法相对较少见也更复杂一些。 --- ### 使用 GPG 密钥增强安全性 (可选) 除了传统的 RSA 或 ED25519 类型之外,也可以考虑采用基于 OpenPGP 的加密方式来做进一步加强保护措施。具体做法涉及到了将现有的 SSH 私钥转换成兼容形式再关联至某个已经激活过的 PGP 子键之上。 一旦完成绑定以后,在未来新增加任何其它类型的认证机制之前都应该先检查一下是否有必要继续沿用旧版方案还是切换到更加现代化的技术上去。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值