Git push over SSH on Windows won't work

2019-05-10 21:47发布

I've got an enigma for you guys!

After an half a day struggle on this issue, I require your experience to enlighten me on git usage on Windows with msysgit.

The context:

  • Windows 8
  • msysgit, last version
  • Using SSH Key authentication
  • Pagent handles SSH key authentication using valid .ppk key (logon with PuTTY is OK)
  • The bare repository is healthy, with permissions OK. Working with git linux client (tested on local Ubuntu VM with the same SSH key)

Env:

  • GIT_SSH=D:\path\to\PuTTY\plink.exe
  • HOME=C:\path\to\myself

The issue:

Short:

error: insufficient permission for adding an object to repository database ./obj

Long:

D:\path\to>git clone ssh://git@my.server.net/opt/git/project
Cloning into 'project'...
Unable to use key file "D:\path\to\puttykey.ppk" (unable to open file)
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
Checking connectivity... done.

D:\path\to>cd project

...me creating some random file...

D:\path\to\project>git add test

D:\path\to\project>git commit -m "Init"
[master 118a94e] Init
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test

D:\path\to\project>git push origin master
Unable to use key file "D:\path\to\puttykey.ppk" (unable to open file)
Counting objects: 2, done.
Writing objects: 100% (2/2), 293 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 2 (delta 1)
error: insufficient permission for adding an object to repository database ./obj

fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To ssh://git@my.server.net/opt/git/project
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'ssh://git@my.server.net/opt/git/project'

I'm honestly accepting any kind of help, thanks by advance..!

By the way, what the hell with this Unable to use key file "D:\path\to\puttykey.ppk"??

1条回答
戒情不戒烟
2楼-- · 2019-05-10 22:12

Most of the answers, as the ones in "Error pushing to GitHub - insufficient permission for adding an object to repository database" mentions an issue around access rights in folder.
That translates into chmod... which doesn't really apply on Windows.

But this answer mentions the same error message when your ssh url reference an entry in your %HOME%/.ssh/config file which is for another public/private ssh key than the one you want to use.

Make sure your url uses the right entry, as I explain in "access repository with ssh"

Host aKey
    User git
    HostName yourHost
    Port 22
    IdentityFile ~/.ssh/<stranger@gmail.com>.key

Here, the OP blint adds in the comments:

the message Unable to use key file "D:\path\to\puttykey.ppk" was therefore due to a wrong path defined in the incriminated PuTTY profile.

查看更多
登录 后发表回答