当前位置:  开发笔记 > 运维 > 正文

当用户名包含斜杠时,PuTTY PSCP错误"不支持本地到本地副本"

如何解决《当用户名包含斜杠时,PuTTYPSCP错误"不支持本地到本地副本"》经验,为你挑选了1个好方法。

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

我的PSCP转移命令是:

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

这导致错误

不支持本地到本地副本


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

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

上面的命令导致问我密码.但是,当我输入密码时,访问被拒绝.这是因为我的远程Linux机器用户名是PEM/username和不是username.但是,如果我使用PEM/username"本地不支持本地副本"的错误消息来了.是否与\用户名中的斜杠有关PEM\username



1> Martin Prikr..:

是的,这是反斜杠.

要解决此问题,请使用-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);

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有