网站首页 > 博客文章 正文
问题
当有多个git账号的时候,比如一个github,用于自己进行一些开发活动,再来一个gitlab,一般是公司内部的git。这两者你的邮箱如果不同的话,就会涉及到一个问题,生成第二个git的key的时候会覆盖第一个的key,导致必然有一个用不了。
解决
我们可以在~/.ssh目录下新建一个config文件配置一下,解决办法就是:生成两个(或多个)不同的公私密钥对,用config文件管理它们。
步骤
我们假设原来在~/.ssh目录下已经生成了一个密钥对:
id_rsa
id_rsa.pub
- 生成第二个key
接下来我们生成第二个ssh key:
ssh-keygen -t rsa -C "your email"
这里不要一路回车,我们自己手动填写保存路径:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/你电脑的设备名/.ssh/id_rsa): /c/Users/你电脑的设备名/.ssh/github
(work)/C:/Users/你电脑的设备名/.ssh/github_ssh(这个名字可以自命名)
<剩下两个直接回车>
这里我们用owner_ssh来区别原有密钥对,避免被覆盖。
完成之后,我们可以看到~/.ssh目录下多了两个文件,变成:
github_ssh
github_ssh.pub
known_hosts(自动生成)
- 打开ssh-agent
这里如果你用的github官方的bash,用:
ssh-agent -s
如果是其他的,比如msysgit,用:
eval $(ssh-agent -s)
略过这一步的话,下一步会提示这样的错误:Could not open a connection to your authentication agent.
- 添加私钥
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_github
如果提示文件或目录不存在,就使用绝对地址。
- 创建config文件
在~/.ssh目录下创建名为config的文件。
添加一下内容:
github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_ssh
其中,Host和HostName填写git服务器的域名。
IdentityFile指定私钥的路径。
如果在Linux系统下提示错误:Bad owner or permissions on /home/gary/.ssh/config
说明config权限过大,chmod命令调整:
$ chmod 644 ~/.ssh/config
然后在github和gitlab上添加公钥即可,这里不再多说。
- 测试
然后用ssh命令分别测试:
ssh -T git@github.com
- 调试
如果到这里你没有成功的话,别急,教你解决问题的终极办法--debug
比如测试github:
ssh -vT git@github.com
-v 是输出编译信息,然后根据编译信息自己去解决问题吧。
就我自己来说一般是config里的host那块写错了。
关于用户名
如果之前有设置全局用户名和邮箱的话,需要unset一下
git config --global --unset user.name
git config --global --unset user.email
然后在不同的仓库下设置局部的用户名和邮箱
比如在公司的repository下
git config user.name "yourname"
git config user.email "youremail"
在自己的github的仓库在执行刚刚的命令一遍即可。
这样就可以在不同的仓库,已不同的账号登录。
补充一下
如果之前有设置全局用户名和邮箱的话,需要unset一下
git config --global --unset user.name
git config --global --unset user.email
然后在不同的仓库下设置局部的用户名和邮箱
比如在公司的repository下git config user.name "yourname" git config user.email "youremail" 在自己的github的仓库在执行刚刚的命令一遍即可。
这样就可以在不同的仓库,用不同的账号登录。
猜你喜欢
- 2024-10-10 Nutch-Hadoop-MongoDB搭建分布式爬虫
- 2024-10-10 OpenSSH更新至8.0,修复存在35年的安全漏洞
- 2024-10-10 [python] 基于paramiko库操作远程服务器
- 2024-10-10 利用Zabbix监控系统SSH方式检测远程目标主机
- 2024-10-10 手工方式IPSec VPN配置保障单位与分支之间的数据安全
- 2024-10-10 SSH 简介:安全远程访问的利器(安全远程登录协议ssh)
- 2024-10-10 [ Laravel 5.6 文档 ] 快速入门 —— 重量级开发环境:Homestead
- 2024-10-10 快速上手:Docker环境下的WordPress安装全攻略
- 2024-10-10 阿里云服务器Centos7.3安装Git(阿里云服务器centos装桌面)
- 2024-10-10 如何使用ssh密钥登录远程服务器(如何使用ssh密钥登录远程服务器账号)
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)