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

匿名 (未验证) 提交于 2019-12-03 03:10:03

问题:

I am trying to move a file from my local Windows machine to a remote Linux server using PSCP. I am connected to the VPN so that I can access my remote Linux machine with my username and password.

My PSCP command for transfer is:

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

This result in the error

Local to local copy not supported


I have tried this command just for a trial

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

The above command resulted in asking me the password. However, when I type in the password, the access is denied. This is because my remote Linux machine username is PEM/username and not username. However if I use PEM/username the "Local to local copy not supported" error message is coming. Does it have something to do with the slash \ in the username PEM\username?

回答1:

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 10.120.43.78:/home/local/PEM/username 

Background:

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);     else     return (NULL); }  ...  if (colon(argv[argc - 1]) != NULL)     toremote(argc, argv); else     tolocal(argc, argv); 


回答2:

i think you are missing apostrophe after Windows file path:

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


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!