How to use scp when cygwin is used as default shell

I have installed openssh-server from optional features on a Windows machine. I can ssh and scp (I need upload only) from my Linux box; However I don't like cmd shell, so I installed Cygwin and set it as default shell for openssh-server (configure shell for openssh). Now the ssh works but scp doesn't (again from my Linux box). scp hangs until I break it with Ctrl+c and no file is transferred. When I ran it with -v option, it hangs on debug1: Sending command: scp -v -r -t /tmp/

This behavior is 100% reproducible and switching the openssh-server shell between cmd and Cygwin.bat gives the explained results all the times.

I remember reading somewhere: the shell shouldn't echo anything or it won't work with scp, I checked ~/.bashrc and ~/.profile and didn't see anything printing out.

I tried set TERM=linux in Cygwin.bat but it didn't help.

I tried to find a way to distinguish scp from ssh in Cygwin.bat but couldn't find a way (my goal was to not start Cygwin64/bin/bash.exe for scp).

Thanks for reading.


Solution 1:

After I removed --login switch from bash command in cygwin.bat file, scp worked as expected.

I think removing this switch prevents .profile script to be executed, I couldn't find anything conflicting with scp in this file, so there may be other behavior changes too.