当用户名包含斜杠时,PuTTY PSCP 错误“不支持本地到本地复制”

问题描述 投票:0回答:4

我正在尝试使用 PSCP 将文件从我的本地 Windows 机器移动到远程 Linux 服务器。我连接到 VPN,这样我就可以使用我的用户名和密码访问我的远程 Linux 机器。

我的 PSCP 传输命令是:

pscp C:\Users\username\Desktop\list.txt PEM\[email protected]:/home/local/PEM/username

这导致错误

不支持本地到本地复制


我试过这个命令只是为了试用

pscp C:\Users\username\Desktop\list.txt [email protected]:/home/local/PEM/username

上面的命令导致询问我密码。但是,当我输入密码时,访问被拒绝。这是因为我的远程 Linux 机器用户名是

PEM/username
而不是
username
。但是,如果我使用
PEM/username
“不支持本地到本地复制” 错误消息即将到来。它与用户名
\
中的斜线
PEM\username
有关吗?

ssh putty pscp
4个回答
20
投票

是的,这是反斜杠。

要解决此问题,请使用

-l
开关指定用户名。

pscp -l PEM\username C:\Users\username\Desktop\list.txt 10.120.43.78:/home/local/PEM/username

背景:

PSCP 查找目标中的第一个冒号、斜杠或反斜杠。只有当第一个符号是冒号时,它才认为目标是远程的,否则是本地的。

/*
 *  Find a colon in str and return a pointer to the colon.
 *  This is used to separate hostname from filename.
 */
static char *colon(char *str)
{
    /* We ignore a leading colon, since the hostname cannot be
       empty. We also ignore a colon as second character because
       of filenames like f:myfile.txt. */
    if (str[0] == '\0' || str[0] == ':' ||
        (str[0] != '[' && str[1] == ':'))
    return (NULL);
    str += host_strcspn(str, ":/\\");
    if (*str == ':')
    return (str);
    else
    return (NULL);
}

...

if (colon(argv[argc - 1]) != NULL)
    toremote(argc, argv);
else
    tolocal(argc, argv);

0
投票

我认为您在 Windows 文件路径后缺少引号:

pscp "C:\Users\username\Desktop\list.txt" PEM\[email protected]:/home/local/PEM/username

0
投票

另一种方法是在键入 root @ 你的 ip 时尝试在文件路径末尾之间留出空格。

我有同样的错误

Wrong way

Correct way


0
投票

在我的例子中,我在 PowerShell v7 上下文中执行 pscp 命令,使用环境变量为计算机 IP、SSH 用户、SSH 密码等提供值。冒号

:
分隔远程主机 IP 和远程将文件复制到的路径被解释为计算机 IP 变量的一部分。通过将此计算机 IP 变量包装在
$()
中,我能够在我的 powershell 脚本中运行命令,并正确扩展变量,而不会将定界冒号解释为变量名称的一部分。

差:

echo n | pscp.exe -pw $env:SSH_PW "$env:CI_PROJECT_DIR\prereq\prereq_test_join_domain.ps1" $env:SSH_USER@$env:TEST_COMPUTER_IP:C:/

好:

echo n | pscp.exe -pw $env:SSH_PW "$env:CI_PROJECT_DIR\prereq\prereq_test_join_domain.ps1" $env:SSH_USER@$($env:TEST_COMPUTER_IP):C:/ 
© www.soinside.com 2019 - 2024. All rights reserved.