我尝试使用 SCP 从远程服务器复制文件,但出现以下错误。
bash-3.2$ scp username@server:main.php C:\main.php
ssh:无法解析主机名 C:未提供主机名或服务名,或者未知
它假设 C: 作为主机名,但它只是驱动器名称..请让我如何明确指定,例如一些转义,以摆脱这个问题。
如果我没有指定在本地桌面上保存的路径,它可以正常工作。
bash-3.2$ scp username@server:main.php main.php
main.php 100% 29KB 28.9KB/s 00:01
感谢任何帮助..提前致谢,
注:使用Windows XP SP2
答案1
答案2
使用 PSCP.exe
您遇到的问题是因为您正在从 shell 引用 Windows XP 驱动器,而您无法做到这一点。您远程登录到一台机器,因此除非您的 Windows XP 机器正在运行 ssh 服务器,在这种情况下,您将使用登录名和密码信息作为目标位置,否则您将无法做到这一点。
使用 pscp.exe(免费)您可以做您想做的事情。
答案3
@grawity 说得对。将来,你也可以运行
pwd
找出您所在的目录,以便您可以根据 cygwin 找出所需目录的正确路径。
答案4
相关:我需要在路径中使用局部变量,发现使用cygpath
非常有帮助。
例如
scp $MY_FILE [email protected]
变得:
scp `cygpath $MY_FILE ` [email protected]
讽刺的是,just: echo $MY_FILE
alone 给出了一个 cygwin 路径,但在 scp 命令中使用时,却出现了同样的错误,ssh:无法解析主机名 C:未提供主机名或服务名,或者未知