一、问题描述

今天 git push 的时候,遇到了之前从来没有遇到的问题。

我的私有 git 是用 gitlab 构建的, 为了保证安全性,需要通过 ssh-keygen 生成 key,之前没有遇到过问题,今天突然报如下的错误:(下面是 stackoverflow 上的错误信息,和我的不太一样,总体错误是差不多的)

1.jpg

然后一直无法 push 成功,即使冲删除 ~/.ssh/id_rsa 然后重新生成也无济于事。

二、问题解决

在 stackoverflow 上搜了一下相关的问题:

有人说是 cygwin 的 bug(windows 下 git.exe 是基于 cygwin),但是我是在 *inux 系统上遇到的,使用的 terminal 是 bash,所以不清楚为什么权限会发生变化。

如果是在 windows 系统上,使用下面命令给予权限.

chgrp -Rv Users ~/.ssh/* 
chmod -vR 700 ~/.ssh/id_rsa

而如果是在 *inux 系统上,使用给予 600 权限即可

chgrp -Rv Users ~/.ssh/* 
chmod -vR 600 ~/.ssh/id_rsa