IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> GitHub多账号管理 -> 正文阅读

[开发工具]GitHub多账号管理

如何在一个主机上使用多个github账号?

1. 背景

在工作时,不管是使用gitlab还是公司自己基于git建立的代码托管系统,我们都会拥有一个使用公司邮箱注册一个github账号。但我们总归需要有自己的‘私人空间’,比如自己写一些demo,或者作为云盘等。此时就需要一台电脑管理 2个及以上的github账号。

**注:一定要关注公司的围墙红线,不要将公司相关资产上传至github等公共场所
**注:一定要关注公司的围墙红线,不要将公司相关资产上传至github等公共场所
**注:一定要关注公司的围墙红线,不要将公司相关资产上传至github等公共场所

2. 思路

ssh连接方式小使用到RSA技术,如果我们没有改动过ssh的默认目录,那么我们会在~/.ssh目录下看到两个秘钥和一个文件

id_rsa:私钥

id_rsa.pub:公钥

known_hosts:远程服务器ip及公钥,用于验证服务器公钥是否更改

此时好需要一个配置文件,git在解析的时候会读取配置文件,从而获取相应账号的秘钥,具体配置稍后说明。

具体步骤:

1)生成不同名称的秘钥

2)更改配置文件

3)取消全局用户名

3. 实操

ssh-keygen:生成、管理和转换认证密钥

常用的可选参数

-C comment
提供一个新注释,即备注

-c 要求修改私钥和公钥文件中的注释。本选项只支持 RSA1 密钥。
程序将提示输入私钥文件名、密语(如果存在)、新注释。

-f filename
指定密钥文件名。

-T output_file
测试 Diffie-Hellman group exchange 候选素数(由 -G 选项生成)的安全性。

-t type
指定要创建的密钥类型。可以使用:“rsa1”(SSH-1) “rsa”(SSH-2) “dsa”(SSH-2)

(1)在.ssh目录下生成自定义名称的秘钥

ssh-keygen -t rsa -f ~/.ssh/id_rsa_2 -C "yourmail@xxx.com

复制公钥并添加到GitHub上你账户上,路径为 setting -> ssh and GPG keys

(2)在.ssh目录下生成配置文件

如果有config文件直接编辑,否则生成。

config文件配置说明:

Host : 标识一个配置区段。

GlobalKnownHostsFile:指定一个或多个全局认证主机缓存文件,用来缓存通过认证的远程主机的密钥,多个文件用空格分隔。默认缓存文件为:/etc/ssh/ssh_known_hosts, /etc/ssh/ssh_known_hosts2.

HostName:指定远程主机名,可以直接使用数字IP地址。如果主机名中包含 ‘%h’ ,则实际使用时会被命令行中的主机名替换。

IdentityFile:指定密钥认证使用的私钥文件路径。默认为 ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 或 ~/.ssh/id_rsa 中的一个。文件名称可以使用以下转义符:‘%d’ 本地用户目录
‘%u’ 本地用户名称
‘%l’ 本地主机名
‘%h’ 远程主机名
‘%r’ 远程用户名

可以指定多个密钥文件,在连接的过程中会依次尝试这些密钥文件。

Port:指定远程主机端口号,默认为 22 。

User:指定登录用户名。

UserKnownHostsFile:指定一个或多个用户认证主机缓存文件,用来缓存通过认证的远程主机的密钥,多个文件用空格分隔。默认缓存文件为: ~/.ssh/known_hosts, ~/.ssh/known_hosts2.

# default                                                                       
Host default
HostName ssh.github.com
User userName
IdentityFile ~/.ssh/id_rsa
# two                                                                           
Host two
HostName ssh.github.com
User userName
IdentityFile ~/.ssh/id_rsa_2

(3)测试

# ssh -T git@host
ssh -T git@default
ssh -T git@two
# Hi IEIT! You've successfully authenticated, but GitHub does not provide shell access.

如果你遇到了如下的错误

git@github.com: Permission denied (publickey).

你可以尝试将新生成的秘钥需要加入到缓存:

 ssh-add -K ~/.ssh/id_rsa_xx

到这里就可以克隆远端的仓库了。并且此时可以使用sourceTree进行配置,后面的操作可以跳过

(4)删除全局配置

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

在自己的仓库下重新配置

git config user.name `xxx“
git config user.email `xxx@xxx.com`

(5)推送到远端

重新设置远端

# host 配置文件的host
# repo 仓库名
git remote add origin git@host:repo
git push origin master

之后再添加远程仓库的时候,就不能直接使用http的方式了,只能使用ssh方式.

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:58:27  更:2022-04-26 11:59:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:12:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码