前提
假设你有两个github账号,一个个人的,一个公司的,名称叫
- personal
- company
白天在公司干活,晚上在家干活,当然不同的账号管理不同的Repository了,要怎么切换呢?
一. 添加新密钥的私钥到SSH agent
ssh-add ~/.ssh/personal ssh-add ~/.ssh/company # 可以通过 ssh-add -l 来确私钥列表 $ ssh-add -l # 可以通过 ssh-add -D 来清空私钥列表 $ ssh-add -D
二. 上传公钥
把两个公钥都放在网站服务器上(比如github)
三. 配置config文件
修改~/.ssh/config文件(没有则新建一个),一个用户对应一段配置:
Host personal.github.com HostName github.com User personal PreferredAuthentications publickey IdentityFile ~/.ssh/personal Host company.github.com HostName github.com User company PreferredAuthentications publickey IdentityFile ~/.ssh/company # Host 服务器别名 (随意取) # HostName 服务器ip地址或机器名 (必须是服务器的地址) # User连接服务器的用户名 ,作用不大 # IdentityFile 密匙文件的具体路径
其中的关键信息是Host, HostName和IdentityFile
四. 配置Repository
在Repository下配置对应的remote地址。比如personal对应的Repository为RP,则:
cd RP # 查看原有的remote配置。一般是git@github.com:xx/xxx.git格式,注意这里的地址是github.com git remote -vv #更新原来的origin配置,把github.com替换为前面的Host,即personal.github.com git remote set-url origin git@personal.github.com:xx/xxx.git
五. 测试
# 测试。第一个git表示是git方式,github.com指测试github.com ssh -T git@personal.github.com ssh -T git@company.github.com # 打印详细信息 ssh -vT git@github.com ## 测试时空可以指定密钥文件 ssh -vT git@github.com -i ~/.ssh/personal
其他
有时候重启,或者长时间不操作,会出现连接拒绝,需要重新把密钥添加到ssh中: ssh-add ~/.ssh/xixisese
ref
- https://www.cloudsavvyit.com/14747/how-to-switch-a-github-repository-to-ssh-authentication/
回复 can i get generic cytotec prices 取消回复