生成多个ssh访问不同git

如果,你的git代码仓库,比如说腾讯云coding,通过ssh秘钥访问,一直用的好好的,有一天,你又增加一个aliyun云效的代码仓库,又配置了aliyun云效的秘钥并且,根据aliyun云效的官方文档上传了ssh公钥,能够正常工作了。

然后,你又返回去搞腾讯云coding做代码托管的项目,发现:

这种情况下,你碰到的这个问题,大概率就可以通过以下步骤解决:

检查本地秘钥

首先你需要检查一下本地秘钥,一般情况下,你如果是windows操作系统的话,秘钥文件默认是在:

C:\Users\yourusername\.ssh

你会发现你通过ssh-keygen 工具生成的公钥和秘钥文件都在:

当然,你在使用ssh-keygen 工具生成公钥的时候,两个平台的公钥不能相互覆盖掉,生成的时候你需要注意一下文件名,把他们区分开来。

创建config文件

如果你在使用git命令的时候报以上类似的错误的话,那么大概率你的.ssh文件夹下是没有上图所示的config文件的,所以你需要手动添加config文件,注意,config文件没有扩展名,你用记事本编辑生成一个即可。

创建之前先验证一下:

ssh -T git@codeup.aliyun.com

大概率会得到:

xxx....xxx
git@e.coding.net: Permission denied (publickey).

然后用记事本创建config文件,内容类似:

User后面写你的用户名就可以了。

config文件的访问权限

创建config之后,再次运行:

ssh -T git@codeup.aliyun.com

你肯能会得到如下提示:

Bad owner or permissions on C:\\Users\\zhang/.ssh/config

这是windows下的文件权限的问题,我的电脑反正就是这样,我也检查了该文件、以及文件夹.ssh的权限,看上去一切正常,我的用户也是owner,对文件夹和config文件有完全控制权限,但是,就是不行,我也不知道为啥,说实话,windows虽然是图形界面,但是在文件权限这块我还真是没搞懂,不如linux的字符界面那么清晰明了。

所以我就把所有的权限通通删掉,系统提示你有继承的权限不让删除的话,你就把继承权限修改掉,不继承。所有权限都删掉之后再把你当前用户重新加为owner、之后再授权完全访问。折腾一回之后,就好了:

C:\Users\zhang>ssh -T git@codeup.aliyun.com
Welcome to Codeup, aliyun3709444756!

C:\Users\zhang>ssh -T git@e.coding.net
CODING 提示: Hello lKSRbQdhrP, You've connected to coding.net via SSH. This is a Personal Key.
lKSRbQdhrP,你好,你已经通过 SSH 协议认证 coding.net 服务,这是一个个人公钥.
公钥指纹:e3:da:a9:bb:a3:97:f0:75:92:b0:2c:6b:98:00:82:a8

两个都好了,可以正常使用了

相关推荐
梦游钓鱼28 分钟前
在window终端创建docker容器的问题
运维·docker·容器
孤寂大仙v34 分钟前
【Linux笔记】理解文件系统(上)
linux·运维·笔记
沉默的八哥1 小时前
K8S高可用Web应用部署方案
运维
winyh51 小时前
Vite 打包后Nginx部署配置
运维·nginx
钢板兽1 小时前
Java后端高频面经——JVM、Linux、Git、Docker
java·linux·jvm·git·后端·docker·面试
D-river2 小时前
【Recon】Git源代码泄露题目解题方法
git·安全·网络安全
运维小贺2 小时前
Nginx常用的模块
运维·nginx·正则表达式
努力学习的小廉2 小时前
深入了解Linux —— 调试程序
linux·运维·服务器
努力学习的小廉2 小时前
深入了解Linux —— git三板斧
linux·运维·git
AI学IT3 小时前
(安全防御)旁挂组网双机热备负载分担实验
运维·服务器·网络