生成多个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

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

相关推荐
冰橙子id3 小时前
linux-远程访问管理(sshd,scp,sftp)
linux·网络·ssh
saynaihe6 小时前
ubuntu 22.04 anaconda comfyui安装
linux·运维·服务器·ubuntu
企鹅与蟒蛇6 小时前
Ubuntu-25.04 Wayland桌面环境安装Anaconda3之后无法启动anaconda-navigator问题解决
linux·运维·python·ubuntu·anaconda
小蜜蜂爱编程6 小时前
ubuntu透网方案
运维·服务器·ubuntu
AI视觉网奇7 小时前
git 访问 github
运维·开发语言·docker
头发那是一根不剩了7 小时前
nginx:SSL_CTX_use_PrivateKey failed
运维·服务器
七夜zippoe8 小时前
破解 VMware 迁移难题:跨平台迁移常见问题及自动化解决方案
运维·自动化·vmware
hweiyu009 小时前
docker简介
运维·docker·容器
测试开发技术9 小时前
使用 Git 时出现 unable to access,如何解决?
git·面试题
Sally璐璐9 小时前
OpenVPN:深度解析开源 VPN 解决方案
运维·开源