当用户名包含斜杠时,PuTTY PSCP 错误 "Local to local copy not supported"
PuTTY PSCP error "Local to local copy not supported" when username contains a slash
我正在尝试使用 PSCP 将文件从本地 Windows 机器移动到远程 Linux 服务器。我已连接到 VPN,因此我可以使用我的用户名和密码访问我的远程 Linux 计算机。
我的 PSCP 传输命令是:
pscp C:\Users\username\Desktop\list.txt PEM\username@10.120.43.78:/home/local/PEM/username
这导致错误
Local to local copy not supported
我试过这个命令
pscp C:\Users\username\Desktop\list.txt username@10.120.43.78:/home/local/PEM/username
上面的命令要求我输入密码。但是,当我输入密码时,访问被拒绝。这是因为我的远程 Linux 机器用户名是 PEM/username
而不是 username
。但是,如果我使用 PEM/username
,则会出现 "Local to local copy not supported" 错误消息。跟用户名PEM\username
中的斜杠\
有关系吗?
我认为您在 Windows 文件路径后缺少引号:
pscp "C:\Users\username\Desktop\list.txt" PEM\username@10.120.43.78:/home/local/PEM/username
是的,是反斜杠。
要解决此问题,请使用 -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] == '[=11=]' || 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);
另一种方法是尝试在输入 root @ 你的 ip 时在文件路径末尾之间留下 space。
我有同样的错误
Wrong way
Correct way
我正在尝试使用 PSCP 将文件从本地 Windows 机器移动到远程 Linux 服务器。我已连接到 VPN,因此我可以使用我的用户名和密码访问我的远程 Linux 计算机。
我的 PSCP 传输命令是:
pscp C:\Users\username\Desktop\list.txt PEM\username@10.120.43.78:/home/local/PEM/username
这导致错误
Local to local copy not supported
我试过这个命令
pscp C:\Users\username\Desktop\list.txt username@10.120.43.78:/home/local/PEM/username
上面的命令要求我输入密码。但是,当我输入密码时,访问被拒绝。这是因为我的远程 Linux 机器用户名是 PEM/username
而不是 username
。但是,如果我使用 PEM/username
,则会出现 "Local to local copy not supported" 错误消息。跟用户名PEM\username
中的斜杠\
有关系吗?
我认为您在 Windows 文件路径后缺少引号:
pscp "C:\Users\username\Desktop\list.txt" PEM\username@10.120.43.78:/home/local/PEM/username
是的,是反斜杠。
要解决此问题,请使用 -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] == '[=11=]' || 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);
另一种方法是尝试在输入 root @ 你的 ip 时在文件路径末尾之间留下 space。
我有同样的错误
Wrong way
Correct way