PuTTY PSCP error “Local to local copy not supported” when username contains a slash

Yes, it’s the backslash.

To workaround it, use an -l switch to specify the username.

pscp -l PEM\username C:\Users\username\Desktop\list.txt


The PSCP looks for the first colon, slash or backslash in the target. Only if the first symbol is colon, it considers the target as remote, otherwise as local.

 *  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);
    return (NULL);


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

Leave a Comment