CVS 未找到 SSH

CVS 未找到 SSH

知道这里是什么问题吗?

>ver

Microsoft Windows [Version 10.0.18363.476]

>echo %CVS_RSH%
ssh

>echo %CVSROOT%
:ext:[email protected]:/xyz

>ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command]

>cvs co foo
cvs [checkout aborted]: cannot start server via rsh: No such file or directory

>

预期的行为是要求我提供 SSH 服务器上的帐户密码(我没有设置 SSH 密钥)。由于没有要求我输入密码,因此 CVS 似乎首先找不到 SSH 可执行文件。

答案1

我弄清楚了问题出在哪里。问题在于我使用了 32 位 CVS 可执行文件和 64 位 SSH 可执行文件。

64 位程序(例如 CMD.EXE)需要运行 C:\Windows\System32\OpenSSH\ssh.exe。另一方面,32 位程序需要运行 C:\Windows\Sysnative\OpenSSH\ssh.exe,因为 WoW64 显然会更改一些目录名称。PATH 环境变量仅包含 C:\Windows\System32\OpenSSH,而不包含 C:\Windows\Sysnative\OpenSSH,因此 32 位程序必须使用完整路径,而 64 位程序只需要可执行文件的名称。

我通过将 CVS_RSH 环境变量设置为完整路径 C:\Windows\Sysnative\OpenSSH\ssh.exe 解决了这个问题。

相关内容