Win32-OpenSSH icon indicating copy to clipboard operation
Win32-OpenSSH copied to clipboard

shell-host.c does not interpret the single quoted file path

Open bingbing8 opened this issue 6 years ago • 11 comments

Please answer the following

If it is a terminal issue then please go through wiki https://github.com/PowerShell/Win32-OpenSSH/wiki/TTY-PTY-support-in-Windows-OpenSSH

"OpenSSH for Windows" version 0.0.20.0

Server OperatingSystem win10

Client OperatingSystem Win10

What is failing shell-host.c passes through to cmd.exe, single quotes as literals. The literal single quotes become part of the file path name, resulting in an incorrect file path.

Expected output shell-host.c should interpret the single quoted file path correctly Actual output

bingbing8 avatar Sep 27 '17 19:09 bingbing8

#90

bingbing8 avatar Sep 29 '17 01:09 bingbing8

It looks like the same thing happens if you set PowerShell as the default shell in the registry, so it's not just a problem with cmd.exe.

diogocp avatar Nov 13 '17 18:11 diogocp

Windows and specially powershell really really suck hard. I dont have an ubuntu vps right now and If I had I would definietly switch back to my developement for linux environments. Setting up a git server is way easy on linux than it is on windows And I dont get it, Why windows is famous for its simplicity while it is just a bunch of unwell written binaries?

amir3code avatar Aug 16 '18 08:08 amir3code

@bingbing8 Is there any progress on this issue?

doggy8088 avatar Oct 12 '18 10:10 doggy8088

@doggy8088 we are working #1082, #1211, and this one together to escape double quotes in a central place. It is in progress.

bingbing8 avatar Oct 14 '18 22:10 bingbing8

@doggy8088, do you have a repro command for me to validate the change?

bingbing8 avatar Oct 16 '18 05:10 bingbing8

@bingbing8 Just simply git clone [email protected]:c:/123.git

doggy8088 avatar Oct 16 '18 06:10 doggy8088

@doggy8088, I tried with powershell as default shell, it works fine

PS D:\git> git clone domain\user@serverhost:F:\git\testsource.git
Cloning into 'testsource'...
warning: You appear to have cloned an empty repository.

The reason it does not work when the default shell is cmd is that cmd does not consume the single quotes, it simply pass to the executable. if you run this locally in your cmd prompt, it also failed.

C:\WINDOWS\system32>git-upload-pack 'F:\\git\\testsource.git'
fatal: ''F:\\git\\testsource.git'' does not appear to be a git repository

bingbing8 avatar Oct 17 '18 23:10 bingbing8

Hi @bingbing8,

I'm trying to clone a Git repo from the server, which I set up with OpenSSH on Windows (OpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4), but I'm facing same issue as described in this thread:

C:\Users\cherk>git clone [email protected]:C:/Users/git/ib/web-app.git
Cloning into 'web-app'...
fatal: ''C:/Users/git/ib/web-app.git'' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

I've checked a number of related threads (#752, #1237) and for some reason setting powershell as default Shell does not resolve the issue for me. At the same time, the workaround, described here works fine, so I'm assuming it's not permissions, or bad URL issue. Unfortunately, the mentioned workaround is not acceptable for me, as it requires configuration to be done by each client, so I'm really hoping to sort things out with powershell used as a default shell.

I'm happy to provide additional details for troubleshooting, please let me know which details/log files would help identify the root cause?

dmitry-cherkas avatar Jan 05 '19 18:01 dmitry-cherkas

I've got the same comment as @dmitry-cherkas and I'm running the same version of openssh. Setting the DefaultShell of the openSSH HKLM to powershell does not work. Only the workaround shown here permitted me access to my git repository.

trenst avatar Jan 17 '19 20:01 trenst

This is still happening to this day. git clone still hangs due to this.

X9VoiD avatar Aug 26 '22 22:08 X9VoiD