我正在尝试使用 PSCP 将文件从本地 Windows 计算机移动到远程 Linux 服务器。我已连接到 VPN,以便可以使用我的用户名和密码访问远程 Linux 计算机。
我的 PSCP 传输命令是:
pscp C:\Users\username\Desktop\list.txt PEM\[email protected] /cdn-cgi/l/email-protection:/home/local/PEM/username
这会导致错误
不支持本地到本地复制
我尝试过这个命令只是为了试用
pscp C:\Users\username\Desktop\list.txt [email protected] /cdn-cgi/l/email-protection:/home/local/PEM/username
上面的命令导致询问我密码。但是,当我输入密码时,访问被拒绝。这是因为我的远程 Linux 机器用户名是PEM/username
并不是username
。但是如果我使用PEM/username
the “不支持本地到本地复制”错误消息来了。和斜线有关系吗\
在用户名中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] == '\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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)