Gogs无法读取远程仓库(fatal: XX/XX.git does not appear to be a git repository)

 

错误描述:fatal: 'XX/XX.git' does not appear to be a git repository

问题

部署完Gogs后,在Web页面创建好仓库后,本地向远程推送出现无法读取远程仓库的问题,可能原因:~/.ssh/authorized_keys 文件中存在重复的 SSH 密钥,所以公钥使用冲突

解决方案

删除~/.ssh/authorized_keys文件里除了属于 Gogs 自动添加以外的重复密钥,这样就可以正常了

新的问题

但是这样又出现了个新的问题,就是我用ssh登不上我的远程服务器了,原来刚刚删除的那个秘钥是ssh远程登录密钥,这样可不行的呀

新的方案

额外再生成一个新的密钥id_rsa_gogs

ssh-keygen -t rsa -C '邮箱或者其他标识' -f ~/.ssh/id_rsa_gogs

再在本地新建(如果存在就修改)~/.ssh/config添加以下内容

Host gogs
    HostName example.com # IP地址或者域名
    Port 222 # ssh端口号
    User git # 远程服务器的用户名
    IdentityFile ~/.ssh/id_rsa_gogs # 刚才生成的密钥的路径
    IdentitiesOnly Yes # 只使用这里设置的key

然后就可以使用gogs这个别名来代替user@host:222

# 以前仓库地址为
user@host:222/repositories-path/xxx.git
# 改为现在的地址
gogs:/repositories-path/xxx.git

这样就OK了,看看其他方案