I am running a putty client on a Windows machine to connect successfully to a Linux box. Now I want to be able to copy a file from the Linux machine under the path /home/ubuntu/myfile
to C:/Users/Anshul/Desktop
on my local computer. The user at the Windows machine is anshul
. I am giving the following command on putty but it is not working:
scp /home/ubuntu/myfile ip_address_of_windows_machine:C:/Users/Anshul/Desktop
I think the path for the Windows machine is wrong. Please help as I have banged my head on a large number of forums but none seem to give correct path for Windows server. Don't suggest alternate options like WinScp
Download pscp
from Putty download page, then use it from Windows machine CMD like this:
pscp username_linux_machine@ip_of_linux_machine:/home/ubuntu/myfile.ext C:\Users\Name\Downloads
It will ask you about the username password of Linux machine, then do the copy for you.
Try this, it really works.
$ scp username@from_host_ip:/home/ubuntu/myfile /cygdrive/c/Users/Anshul/Desktop
And for copying all files
$ scp -r username@from_host_ip:/home/ubuntu/ *. * /cygdrive/c/Users/Anshul/Desktop
This one worked for me.
scp /home/ubuntu/myfile username@IP_of_windows_machine:/C:/Users/Anshul/Desktop
Windows doesn't support SSH/SCP/SFTP
natively. Are you running an SSH server application on that Windows server? If so, one of the configuration options is probably where the root is, and you would specify paths relative to that root. In any case, check the documentation for the SSH server application you are running in Windows.
Alternatively, use smbclient
to push the file to a Windows share.
Access from Windows by Git Bash console:
scp root@ip:/etc/../your-file "C:/Users/XXX/Download"
IMHO, you would use something like the following
scp -r username_Linuxmachine@LinuxMachineAddress:Path/To/File .
The .
will copy the File
to the local default directory of your program.
For example using GitBash, this saves the File to my configured work folder under D: drive.
For all, who has installed GiT completly with "Git Bash": You can just write:
scp login@ip_addres:/location/to/folders/file.tar .
(with space and DOT at the end to copy to current location). Than just add certificate (y), write password and that's all.
I had to use pscp like above Hesham's post once I downloaded and installed putty. I did it to Windows from Linux on Windows so I entered the following:
c:\ssl>pscp username@linuxserver:keenan/ssl/* .
This will copy everything in the keenan/ssl folder to the local folder (.) you performed this command from (c:\ssl). The keenan/ssl will specify the home folder of the username user, for example the full path would be /home/username/keenan/ssl. You can specify a different folder using a forward slash (/), such as
c:\ssl>pscp username@linuxserver:/home/username/keenan/ssl/* .
So you can specify any folder at the root of Linux using :/
Keenan
Your code isn't working because c:/ or d:/ is totally wrong for linux just use /mnt/c or/mnt/c
From your local windows10-ubuntu bash use this command:
for download: (from your remote server folder to d:/ubuntu) :
scp username@ipaddress:/folder/file.txt /mnt/d/ubuntu
Then type your remote server password if there is need.
for upload: (from d:/ubuntu to remote server ) :
scp /mnt/d/ubuntu/file.txt username@ipaddress:/folder/file.txt
Then type your remote server password if there is need. note: I tested and it worked.
Here is the solution to copy files from Linux to Windows using SCP without password by ssh:
Install sshpass in Linux machine to skip password prompt
Script
sshpass -p 'xxxxxxx' scp /home/user1/*.* testuser@x.x.x.x:/d/test/
Details:
sshpass -p 'password' scp /source_path/*.* windowsusername@windowsMachine_ip:/destination_drive/subfolder/
To send a file from windows to linux system
scp path-to-file user@ipaddress:/path-to-destination
Example:
scp C:/Users/adarsh/Desktop/Document.txt root@127.0.0.1:/tmp
keep in mind that there need to use forward slash(/) inplace of backward slash(\) in for the file in windows path else it will show an error
C:UsersadarshDesktopDocument.txt: No such file or directory
. After executing scp command you will ask for password of root user in linux machine. There you GO...
To send a file from linux to windows system
scp -r user@ipaddress:/path-to-file path-to-destination
Example:
scp -r root@127.0.0.1:/tmp/Document.txt C:/Users/adarsh/Desktop/
and provide your linux password. only one you have to add in this command is -r. Thanks.
Open bash window. Preferably git bash. write
scp username@remote_ip:/directory_of_file/filename 'windows_location_you_want_to_store_the_file'
Example:
Suppose your username is jewel
your IP is 176.35.96.32
your remote file location is /usr/local/forme
your filename is logs.zip
and you want to store in your windows PC's D drive forme folder then the command will be
scp jewel@176.35.96.32:/usr/local/forme/logs.zip 'D:/forme'
**Keep the local file directory inside single quote.
As @Hesham Eraqi suggested, it worked for me in this way (transfering from Ubuntu to Windows (I tried to add a comment in that answer but because of reputation, I couldn't)):
pscp -v -r -P 53670 user@xxx.xxx.xxx.xxx:/data/genetic_map/sample/P2_283/* \\Desktop-mojbd3n\d\cc_01-1940_data\
where:
-v
: show verbose messages.-r
: copy directories recursively.-P
: connect to specified port.53670
: the port number to connect the Ubuntu server.\\Desktop-mojbd3n\d\genetic_map_data\
: I needed to transfer to an external HDD, thus I had to give permissions of sharing to this device.
I know this is old but I was struggling with the same. I haven't found a way to change directories, but if you just want to work with the C drive, scp defaults to C. To scp from Ubuntu to Windows, I ended up having to use (notice the double back-slashes):
scp /local/file/path user@111.11.11.111:Users\\Anshul\\Desktop
Hope this helps someone.
Try this:
scp /home/ubuntu/myfile C:\users\Anshul\Desktop
If you want to copy paste files from Unix to Windows and Windows to Unix just use filezilla with port 22.
来源:https://stackoverflow.com/questions/10235778/scp-from-linux-to-windows