目录
有时我们需要在一台计算机上同时要有多个ssh身份认证,比如使用git时,有一个gitHub和gitee.com
1.检查系统是否有.ssh文件夹
一般是在C:\Users\Administrator目录下,如果没有手动新建.ssh文件夹
2.生成多个ssh key
ssh-keygen -t rsa -C "youremail@yourcompany.com" //码云
ssh-keygen -t ed25519 -C "your_email@example.com" // github ssh版本不低于7.2
一路回车会在C:\Users\Administrator\.ssh文件夹中默认生成id_rsa和id_rsa.pub两个文件,可通过输入文件名称来生成不同的ssh key
第一步提示输入文件名
- Enter file in which to save the key (C:\Users\Administrator/.ssh/id_rsa):C:\Users\Administrator\.ssh\id_rsa_github
一路回车
在C:\Users\Administrator\.ssh文件夹中生成id_rsa_github和id_rsa_github.pub两个文件
重复 ssh-keygen -t rsa -C "youremail@yourcompany.com" 在生成id_rsa_mayun和id_rsa_mayun.pub
由此我们分别为gitee和github生成对应的公钥和私钥,完成后的目录:
id_rsa_mayun
id_rsa_mayun.pub
id_rsa_github
id_rsa_github.pub
3.添加私匙
ssh-add C:\Users\Administrator\.ssh\id_rsa_mayun
ssh-add C:\Users\Administrator\.ssh\id_rsa_github
若报错
Error connecting to agent: No such file or directory
以管理员身份运行powershell检查ssh-agent服务是否启动
get-service ssh*
Status Name DisplayName
Stopped ssh-agent OpenSSH Authentication Agent
发现ssh-agent服务状态为 stopped,启动服务
Set-Service -Name ssh-agent -StartupType Manual
Start-Service ssh-agent
在次查看启动状态
get-service ssh*
Status Name DisplayName
Running ssh-agent OpenSSH Authentication Agent
添加私匙
ssh-add C:\Users\Administrator\.ssh\id_rsa_mayun
ssh-add C:\Users\Administrator\.ssh\id_rsa_github
查看是否添加成功
ssh-add -l
2048 SHA256:jo6P8UvQeWnGsgAaiL3oJhgMOV/TNkoWe8jIRss1f7g C:\Users\Administrator\.ssh\id_rsa_github (RSA)
2048 SHA256:OO56YmxC0Lt/eAx7xuT5KDj0Y/fQqlPALYIy2Eju3B8 C:\Users\Administrator\.ssh\id_rsa_mayun (RSA)
系统已经有ssh-key 代理 ,可以删除
ssh-add -D //删除所有
ssh-add -d C:\Users\Administrator\.ssh\id_rsa_mayun //删除指定的
4.添加公匙
在对应的gitee和github的ssh管理页面,添加对应的公钥(.pub 文件内容),保存到代码管理服务器。
5.添加和编辑配置文件config
在 C:\Users\Administrator\.ssh文件夹下新建config文件
添加内容
# github
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github# gitee
Host gitee.com
HostName gitee.com
User git
IdentityFile ~/.ssh/id_rsa_mayun# mygitlab
Host 192.168.47.129
HostName 192.168.47.129
User git
IdentityFile ~/.ssh/id_rsa_mygitlab
6.测试连接
ssh -T git@github.com
warning: agent returned different signature type ssh-rsa (expected rsa-sha2-512)
Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.
可连接状态
7.使用ssh方式克隆仓库代码
保存完代码,可直接git push提交