当使用 cygwin 作为默认 shell 时如何使用 scp

当使用 cygwin 作为默认 shell 时如何使用 scp

我已经在 Windows 机器上从可选功能安装了 openssh-server。我可以从我的 Linux 机器上 ssh 和 scp(我只需要上传);但是我不喜欢 cmd shell,所以我安装了 Cygwin 并将其设置为 openssh-server 的默认 shell(为 openssh 配置 shell)。现在 ssh 可以工作,但 scp 不行(同样来自我的 Linux 机器)。scp 挂起,直到我用 Ctrl+c 中断它,并且没有文件传输。当我使用-voption 运行它时,它挂起debug1: Sending command: scp -v -r -t /tmp/

此行为 100% 可重现,并且在 cmd 和 Cygwin.bat 之间切换 openssh-server shell 始终会给出解释的结果。

我记得在某处读过:shell 不应该回显任何内容,否则它将无法与 scp 一起使用,我检查了 ~/.bashrc 和 ~/.profile 并没有看到任何打印出来。

set TERM=linux在 Cygwin.bat 中尝试过,但没有帮助。

我试图在 Cygwin.bat 中找到一种方法来区分 scp 和 ssh,但是找不到方法(我的目标是不为 scp 启动 Cygwin64/bin/bash.exe)。

谢谢阅读。

答案1

我从文件中的命令中删除--login开关后,一切如预期。bashcygwin.batscp

我认为删除此开关会阻止.profile脚本执行,我scp在此文件中找不到任何冲突的内容,因此也可能存在其他行为变化。

相关内容