尼采般地抒情

公告栏

此网站主题为本人手写主题, 主题待开源···

站点信息

文章总数目: 298
已运行时间: 991
目录
  1. 部署多个github+coding等账号
    1. 思路
    2. 多密匙生成
    3. 配置 config
    4. 部署 SSH key
    5. 清缓存,添 agent
    6. 验证是否配置成功
    7. 使用
  2. 参考资料

尼采般地抒情

尼采般地抒情

公告栏

此网站主题为本人手写主题, 主题待开源···

站点信息

文章总数目: 298
已运行时间: 991

部署多个github+coding等账号


思路


好处:一台设备可以使用多个github账号/github+coding等等多平台托管/搭建两个静态博客


取消全局用户配置(每建立一个新文件夹,需要输入使用账号),建立多个ssh密匙(如果是github账号+coding账号+gitee账号等)


SSH的公钥是GitHub连接本地仓库和远程仓库的标识,一个公钥只能对应一个GitHub账户,一个相同的公钥不能上传到不同的GitHub账户


一台电脑,可以生成多对公私钥,可以通过配置,将不同的公钥上传到不同的GitHub账号,那么就不存在单个公钥绑定多个GitHub账号的情况存在了


多密匙生成


  • 先进来该文件夹(忽略图片上写的字)

  • 创建新密匙方法一(首选)


ssh-keygen -t rsa -f ~/.ssh/这里是新密钥名称 -C "这里是你的邮箱"


注意区别新密钥名称和旧密钥名称,不要相同!!


  • 创建新密匙方法二


输入这个:ssh-keygen -t rsa -C "这里是你的邮箱"


出现这两句:

Generating public/private rsa key pair.


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


注意此时需要你输入新密钥的名称,同样要注意区别新密钥名称和旧密钥名称,不要相同,之后再两次回车。


配置 config


.ssh 根文件夹下没有 config 文件,需要新建


  • 新建 config 文件方法一


在.ssh 根路径下键入该命令touch config


  • 新建 config 文件方法二


记事本新建文件 config 文件!!没有后缀


  • 输入内容


#第一个账号,默认使用的账号,不用做任何更改
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa #第二个新账号,#"xxxxxx"为前缀名,可以任意设置,要记住,后面需要用到
Host xxxxxx.github.com
HostName github.com
User git
IdentityFile ~/.ssh/这里是你创建的新密钥的名称


# one(one@gmail.com)
Host one.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_one
User one

# two(two@gmail.com)

Host two.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id*rsa_two
User two


Host myhost(这里是自定义的 host 简称,以后连接远程服务器就可以用命令 ssh myhost)
HostName 主机名可用 ip 也可以是域名(如:github.com 或者 bitbucket.org)
Port 服务器 open-ssh 端口(默认:22,默认时一般不写此行)
PreferredAuthentications 配置登录时用什么权限认证--可设为 publickey,password publickey,keyboard-interactive 等
IdentityFile 证书文件路径(如~/.ssh/id_rsa*\*)
User 登录用户名(如:git)


每个账号单独配置一个 Host,每个 Host 要取一个别名,一般为每个 Host 主要配置 HostName 和 IdentityFile 两个属性,配置完保存即可。


Host 的名字可以自定义名字,不过这个会影响 git 相关命令,例如:Host mygithub 这样定义的话,使用命令 git clone git@mygithub:PopFisher/AndroidRotateAnim.git,git@后面紧跟的名字改为 mygithub


mine


部署 SSH key


将根文件夹下的wztlink1013.pub文件复制到 github 上,coding/gitee 类似


title 可以随便填


清缓存,添 agent


在根目录下


ssh-add -D
ssh-add xxxxxx #旧密钥名称,一般是 id_rsa
ssh-add xxxxxx #新创建的密钥名称


如果执行以上命令出现错误:Could not open a connection to your authentication agent.,那么就需要先执行ssh-agent bash,再执行以上命令


验证是否配置成功


一下第一个是之前默认的 github 账号,默认即可,第二个是添加的


ssh -T git@github.com
ssh -T git@xxxxxxx.github.com


出现Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.则成功。


使用


  • 取消全局用户名和邮箱配置(如果已经设置了全局的话)


git config --global --unset user.name
git config --global --unset user.email


  • clone


原来:git clone git@github.com: wztlink1013/learngit.git


现在:


git clone git@wztlink1013.github.com: wztlink1013/learngit.git
git clone git@twicename.github.com: twicename/learngit.git


  • 单独为每个 repo 设置 用户名/邮箱【以文件夹为单位】


git config user.name "wztlink1013"
git config user.email "2550374815@qq.com"

git config user.name "twicename"
git config user.email "123456789@qq.com"


如果报错:fatal: not in a git directory,说明没有进入.git 目录下,具体路径:其中.git 目录是隐藏的,需要你设置隐藏目录可见


执行git config --list查看设置是否成功


参考资料


评论区

Twikoo giscus