多个SSH私钥配置不当导致Git push 失败的分析及解决方法

今天写了几笔项目,推给coding.net的时候AS报错。在更新之前这个是老毛病了,终端上手动push一下就好。

不过这次不同,终端上显示:

Permission denied (publickey).
fatal: 无法读取远程仓库。

请确认您有正确的访问权限并且仓库存在。

想起最近在弄VPS,可能是SSH Key的设置上出了问题,于是检查一下(指定了私钥位置):

ssh -i ~/.ssh/id_rsa  -T git@git.coding.net

回复的信息正常,说明SSH连接没问题:

Coding 提示: Hello NeroS, You've connected to Coding.net via SSH. This is a deploy key.

然后再推送一下,怪了,依然fail。

仔细回想一下,在给VPS设置SSH密钥连接的时候,为了防止覆盖掉原来的私钥,特地换了一个目录生成后拷贝过去,最后好像还在某个配置文件里添加了一行。那里应该是SSH连接是寻找私钥的默认目录,翻了翻,原来是这个:

/etc/ssh/sshd_config

关键部分如下:

#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
    IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
    IdentityFile ~/.ssh/id_rsa_vps
#   Port 22

其中大多数都是被注释掉的,默认不起作用。配置VPS的时候我加了最下面的私钥,原来的没有动。

将默认的 ~/.ssh/id_rsa 前面的注释去掉之后,就一切正常了。经测试,连接两个不同的服务器均无需单独指定私钥文件,由此也可以得出,该处的配置确实是默认的寻找私钥的目录。如果有多个私钥同时使用,添加在此处即可。

转载于:https://www.cnblogs.com/NeroSong/p/9054226.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值