Use scp to transfer a file from local directory X to remote directory Y
up vote
72
down vote
favorite
I took a look around at other questions here and at various "scp usage" tutorials on Internet, but I can't sort out what's wrong.
I'm using Linux Mint and I'm trying to figure out how scp works.
I've a file file.ext (on my computer) in directory /home/name/dir/
I connect to a remote machine using ssh, like:
ssh -p 2222 username@domain
it asks me the password and the shell displays:
username@domain ~ $
now, If I issue the command (before I ran ssh I was in the local directory /home/name/dir ):
scp -r -P 2222 file.ext username@domain
output is:
cp: cannot stat ‘file.ext’: No such file or directory
Same result if instead of file.ext I write the complete path
scp -r -P 2222 /home/name/dir/file.ext username@domain
Also, the server admin told me that I shall upload the file to my remote home directory (instead of root), like:
scp -r -P 2222 file.ext username@domain:~/
but when I do it and press "Enter" nothing happens, as If the shell was waiting for further input.
Summary of my problems:
- cp: no such file or directory
- shell "stuck" on ~/
Any suggestions?
scp
add a comment |
up vote
72
down vote
favorite
I took a look around at other questions here and at various "scp usage" tutorials on Internet, but I can't sort out what's wrong.
I'm using Linux Mint and I'm trying to figure out how scp works.
I've a file file.ext (on my computer) in directory /home/name/dir/
I connect to a remote machine using ssh, like:
ssh -p 2222 username@domain
it asks me the password and the shell displays:
username@domain ~ $
now, If I issue the command (before I ran ssh I was in the local directory /home/name/dir ):
scp -r -P 2222 file.ext username@domain
output is:
cp: cannot stat ‘file.ext’: No such file or directory
Same result if instead of file.ext I write the complete path
scp -r -P 2222 /home/name/dir/file.ext username@domain
Also, the server admin told me that I shall upload the file to my remote home directory (instead of root), like:
scp -r -P 2222 file.ext username@domain:~/
but when I do it and press "Enter" nothing happens, as If the shell was waiting for further input.
Summary of my problems:
- cp: no such file or directory
- shell "stuck" on ~/
Any suggestions?
scp
it's slightly unclear whether your problem is only related to being on the wrong machine...could you please prefix each command with the host you are running on? e.g.localuser@machineA: ssh -p 2222 username@domain(to indicate that you are running the ssh command as localuser on machineA)
– umläute
Feb 17 '14 at 16:09
when usingscp, the remote side always has to contain the colon (e.g.remotehost:/tmp), else it will just do an ordinary copy (scp /tmp/foo.txt example.comwill copy/tmp/foo.txtinto a local fileexample.com)
– umläute
Feb 17 '14 at 16:11
remove the-rflag, as this is not needed for copying single files (it's used to recursively copy directories)
– umläute
Feb 17 '14 at 16:12
Are you issuing the scp command inside the sshe session? It would make sense if you are on the local machine.
– alexis
Feb 17 '14 at 16:13
1
scp -P 2222 file.ext username@hostname-or-ip_address:/remote/path/
– Christopher
Feb 17 '14 at 16:14
add a comment |
up vote
72
down vote
favorite
up vote
72
down vote
favorite
I took a look around at other questions here and at various "scp usage" tutorials on Internet, but I can't sort out what's wrong.
I'm using Linux Mint and I'm trying to figure out how scp works.
I've a file file.ext (on my computer) in directory /home/name/dir/
I connect to a remote machine using ssh, like:
ssh -p 2222 username@domain
it asks me the password and the shell displays:
username@domain ~ $
now, If I issue the command (before I ran ssh I was in the local directory /home/name/dir ):
scp -r -P 2222 file.ext username@domain
output is:
cp: cannot stat ‘file.ext’: No such file or directory
Same result if instead of file.ext I write the complete path
scp -r -P 2222 /home/name/dir/file.ext username@domain
Also, the server admin told me that I shall upload the file to my remote home directory (instead of root), like:
scp -r -P 2222 file.ext username@domain:~/
but when I do it and press "Enter" nothing happens, as If the shell was waiting for further input.
Summary of my problems:
- cp: no such file or directory
- shell "stuck" on ~/
Any suggestions?
scp
I took a look around at other questions here and at various "scp usage" tutorials on Internet, but I can't sort out what's wrong.
I'm using Linux Mint and I'm trying to figure out how scp works.
I've a file file.ext (on my computer) in directory /home/name/dir/
I connect to a remote machine using ssh, like:
ssh -p 2222 username@domain
it asks me the password and the shell displays:
username@domain ~ $
now, If I issue the command (before I ran ssh I was in the local directory /home/name/dir ):
scp -r -P 2222 file.ext username@domain
output is:
cp: cannot stat ‘file.ext’: No such file or directory
Same result if instead of file.ext I write the complete path
scp -r -P 2222 /home/name/dir/file.ext username@domain
Also, the server admin told me that I shall upload the file to my remote home directory (instead of root), like:
scp -r -P 2222 file.ext username@domain:~/
but when I do it and press "Enter" nothing happens, as If the shell was waiting for further input.
Summary of my problems:
- cp: no such file or directory
- shell "stuck" on ~/
Any suggestions?
scp
scp
edited Feb 19 '14 at 6:40
Timo
4,7251726
4,7251726
asked Feb 17 '14 at 15:58
dragonmnl
64421020
64421020
it's slightly unclear whether your problem is only related to being on the wrong machine...could you please prefix each command with the host you are running on? e.g.localuser@machineA: ssh -p 2222 username@domain(to indicate that you are running the ssh command as localuser on machineA)
– umläute
Feb 17 '14 at 16:09
when usingscp, the remote side always has to contain the colon (e.g.remotehost:/tmp), else it will just do an ordinary copy (scp /tmp/foo.txt example.comwill copy/tmp/foo.txtinto a local fileexample.com)
– umläute
Feb 17 '14 at 16:11
remove the-rflag, as this is not needed for copying single files (it's used to recursively copy directories)
– umläute
Feb 17 '14 at 16:12
Are you issuing the scp command inside the sshe session? It would make sense if you are on the local machine.
– alexis
Feb 17 '14 at 16:13
1
scp -P 2222 file.ext username@hostname-or-ip_address:/remote/path/
– Christopher
Feb 17 '14 at 16:14
add a comment |
it's slightly unclear whether your problem is only related to being on the wrong machine...could you please prefix each command with the host you are running on? e.g.localuser@machineA: ssh -p 2222 username@domain(to indicate that you are running the ssh command as localuser on machineA)
– umläute
Feb 17 '14 at 16:09
when usingscp, the remote side always has to contain the colon (e.g.remotehost:/tmp), else it will just do an ordinary copy (scp /tmp/foo.txt example.comwill copy/tmp/foo.txtinto a local fileexample.com)
– umläute
Feb 17 '14 at 16:11
remove the-rflag, as this is not needed for copying single files (it's used to recursively copy directories)
– umläute
Feb 17 '14 at 16:12
Are you issuing the scp command inside the sshe session? It would make sense if you are on the local machine.
– alexis
Feb 17 '14 at 16:13
1
scp -P 2222 file.ext username@hostname-or-ip_address:/remote/path/
– Christopher
Feb 17 '14 at 16:14
it's slightly unclear whether your problem is only related to being on the wrong machine...could you please prefix each command with the host you are running on? e.g.
localuser@machineA: ssh -p 2222 username@domain (to indicate that you are running the ssh command as localuser on machineA)– umläute
Feb 17 '14 at 16:09
it's slightly unclear whether your problem is only related to being on the wrong machine...could you please prefix each command with the host you are running on? e.g.
localuser@machineA: ssh -p 2222 username@domain (to indicate that you are running the ssh command as localuser on machineA)– umläute
Feb 17 '14 at 16:09
when using
scp, the remote side always has to contain the colon (e.g. remotehost:/tmp), else it will just do an ordinary copy (scp /tmp/foo.txt example.com will copy /tmp/foo.txt into a local file example.com)– umläute
Feb 17 '14 at 16:11
when using
scp, the remote side always has to contain the colon (e.g. remotehost:/tmp), else it will just do an ordinary copy (scp /tmp/foo.txt example.com will copy /tmp/foo.txt into a local file example.com)– umläute
Feb 17 '14 at 16:11
remove the
-r flag, as this is not needed for copying single files (it's used to recursively copy directories)– umläute
Feb 17 '14 at 16:12
remove the
-r flag, as this is not needed for copying single files (it's used to recursively copy directories)– umläute
Feb 17 '14 at 16:12
Are you issuing the scp command inside the sshe session? It would make sense if you are on the local machine.
– alexis
Feb 17 '14 at 16:13
Are you issuing the scp command inside the sshe session? It would make sense if you are on the local machine.
– alexis
Feb 17 '14 at 16:13
1
1
scp -P 2222 file.ext username@hostname-or-ip_address:/remote/path/
– Christopher
Feb 17 '14 at 16:14
scp -P 2222 file.ext username@hostname-or-ip_address:/remote/path/
– Christopher
Feb 17 '14 at 16:14
add a comment |
8 Answers
8
active
oldest
votes
up vote
90
down vote
accepted
You need to run the scp command from the local machine, not on the remote. You don't need the ssh at all:
dragonmnl@local $ scp -P 2222 file.ext username@domain:~/
You also don't need the -r:
-r Recursively copy entire directories.
If you are already logged into the remote machine and want to copy from your local, you need to make sure that your local machine is accessible via the internet and has ssh set up. I don't think this is what you are after but if it is, just run this from the remote:
username@domain $ scp dragonmnl@local:/path/to/file.ext ~/
1
thanks. the problem was I was trying running scp inside ssh session. now it works!
– dragonmnl
Feb 17 '14 at 16:19
add a comment |
up vote
21
down vote
I provide two methods of up/down load file between remote and local machine(I use Mac air):
In this case, I want to up/down "11.jpeg " between local and remote:
1.
Copy files on service to local dir: You must be in local bash terminal to conduct this command, not when you are in ssh!
scp username@domain:/home/xxx/xxx/11.jpeg /Users/username/Desktop/
copy files in local dir to remote service : also you must be in local bash terminal
scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx
To achieve the same intention when you are logging in the SSH, you must first set “System Preferences>sharing>remote log in>all users(I am not sure if you must set for "all users", but it works in this situation)” the Mac will tell you"To log in to this computer remotely, type : ssh username@xxxxxx, then type in the command below:
scp username@domain:/home/xxx/xxx/11.jpeg username@xxxxxx:/Users/username/Desktop/
This command above is for downloading file from remote to local when you are logging into ssh, Just change the two path when you want to upload file .
Finally, I find Filezilla is probably the most convenient one in daily work~~
– maizer
Aug 14 at 19:57
add a comment |
up vote
3
down vote
If you're running this scp command on the remote machine, it is looking for file.ext as a "local" file, i.e. on the remote machine.
To copy a file from the remote machine to the local one, use scp -P 2222 username@domain:dir/file.ext localdir (assuming that file.ext is in ~/dir on the remote computer, as in your example). If you run scp on the remote machine, reverse "local" and "remote".
1
The OP wants to copy from local to remote, see the OP's title.
– terdon♦
Feb 17 '14 at 16:10
Oops, I guess you're right. But he's apparently doing it backwards...
– alexis
Feb 17 '14 at 16:15
add a comment |
up vote
2
down vote
Use the scp command
If you want to transfer a folder, just zip it first, we can unzip it later on.
From your computer, run this:
$ scp your_path_to_the_file/the_file root@10.145.198.100:~/
Here, root is your account, and 10.145.198.100 is the remote server's IP address. We're going to copy the_file to ~/ folder in the remote.
Unzip file:
$ unzip the_zip_file.zip -d destination_folder
Why wouldrooteven have SSH access on the remote machine? That's pretty insecure. Better to use an ordinary use and thensudoto do whatever root has to do on that machine.
– Kusalananda
Jul 10 at 9:31
add a comment |
up vote
0
down vote
Solution to copy files from Linux client to Linux Server
Check if
sshdis running on your server using:
ps aux | grep sshdIf not install
OpenSSHusing
sudo apt-get install openssh-server openssh-client
https://www.tecmint.com/install-openssh-server-in-linux/Restart your server and verify that
sshdis running using
ps aux | grep sshdIf you need you can configure your
/etc/ssh/sshd_configfile, but its not
necessary for simple configurationsverify that the ports are open using
netcat
nc -v -z 127.0.0.1 22To copy files from a
Linuxclient to aLinuxclient use scp as follows
scp ~/filename.md username@10.22.33.45:~/folder/filename.mdTo verify that file has been copied use
ssh username@10.22.33.45and provide your password.
Solution to copy files from Linux client to `Windows
There are multiple clients for running SSH servers on Windows such as
OpenSSH from MS
MobaSSH
Bitvise SSH server
Install one of the above servers and make sure that port 22 is open using
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=TCP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=TCP localport=22
netsh advfirewall set allprofiles state off
Comparisons of these servers:
Bitvise SSH server
Provides almost close to native
cmdprompt,powershellprompt,
autocompletionProvides additional capabilities for customization, if you need
advanced usageUser customization for simple needs is 0. I got started on it within
2 mins, after having spent a lot of time trying to getMobaSSHand
OpenSSHto work.To copy files using scp use:
scp ~/filename.md username@10.33.44.45:/C/Users/username/filename.mdFree for personal use, $99 for professional use. Because of so many
features and great integration, the price is well worth the money
MobaSSH:
provides a linux shell on windows where simple linux commands such
asls,cp,findetc work, similar toMINGW64you can access
cmdandpowershelldirectly by typingcmdor
powershellUnicode support is poor. Encoding is not correct. For example if you
try to startPythoninterpretor, it will crash. You will need to
change the encoding manually using
(https://stackoverflow.com/a/12834315/4752883):
chcp 65001
set PYTHONIOENCONDING=utf-8
and then startup Python promptThe great thing about MobaSSH is that it has a very simple
user-interface, andscpandsshand integrated well. So will
work for simple use casesTo copy files from a
Linuxclient to aWindowsserver running
MobaSSH: use
scp ~/filename.md
username@10.33.44.45:/cygdrive/c/Users/username/filename.md
This is becauseMobaSSHis based oncygwinand its drives are
mapped to the same waycygwin-s drives are mapped.
Use VMs from Microsoft with OpenSSHv6.7 installed from
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/,
OpenSSHv6.7 is already installed.
Its very buggy, and you will need to heavily customize it.
Command completion doesnt work
It will leave blank spaces when you are moving cursor on the terminal
Python doesn't work
Later versions of OpenSSH, may have improved on it. Further MS seems to
make OpenSSH available viaOptional Features
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
add a comment |
up vote
0
down vote
Just a small contribution, maybe it can help beginners like me: the path to the the remote directory should be written like this: username@domain:~/remote_directory
What I want to highlight here is that we should always add that :~/
add a comment |
up vote
-1
down vote
If you happen to be on OSX...
When I tried running it with username@local:/file_directory...
I got the following error:
ssh: local: node name or service name not known
Solution
On my Mac I had to do the following to setup local ssh:
‘System Preferences’ --> ‘Internet & Networking’ --> ‘Sharing’ --> ENABLE ‘Remote Login’
This then provided the username@ip address.
add a comment |
up vote
-1
down vote
I had this same problem today on MAC.
Type the following command:
scp /local-file-path/ /-remote-location-path/
add a comment |
8 Answers
8
active
oldest
votes
8 Answers
8
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
90
down vote
accepted
You need to run the scp command from the local machine, not on the remote. You don't need the ssh at all:
dragonmnl@local $ scp -P 2222 file.ext username@domain:~/
You also don't need the -r:
-r Recursively copy entire directories.
If you are already logged into the remote machine and want to copy from your local, you need to make sure that your local machine is accessible via the internet and has ssh set up. I don't think this is what you are after but if it is, just run this from the remote:
username@domain $ scp dragonmnl@local:/path/to/file.ext ~/
1
thanks. the problem was I was trying running scp inside ssh session. now it works!
– dragonmnl
Feb 17 '14 at 16:19
add a comment |
up vote
90
down vote
accepted
You need to run the scp command from the local machine, not on the remote. You don't need the ssh at all:
dragonmnl@local $ scp -P 2222 file.ext username@domain:~/
You also don't need the -r:
-r Recursively copy entire directories.
If you are already logged into the remote machine and want to copy from your local, you need to make sure that your local machine is accessible via the internet and has ssh set up. I don't think this is what you are after but if it is, just run this from the remote:
username@domain $ scp dragonmnl@local:/path/to/file.ext ~/
1
thanks. the problem was I was trying running scp inside ssh session. now it works!
– dragonmnl
Feb 17 '14 at 16:19
add a comment |
up vote
90
down vote
accepted
up vote
90
down vote
accepted
You need to run the scp command from the local machine, not on the remote. You don't need the ssh at all:
dragonmnl@local $ scp -P 2222 file.ext username@domain:~/
You also don't need the -r:
-r Recursively copy entire directories.
If you are already logged into the remote machine and want to copy from your local, you need to make sure that your local machine is accessible via the internet and has ssh set up. I don't think this is what you are after but if it is, just run this from the remote:
username@domain $ scp dragonmnl@local:/path/to/file.ext ~/
You need to run the scp command from the local machine, not on the remote. You don't need the ssh at all:
dragonmnl@local $ scp -P 2222 file.ext username@domain:~/
You also don't need the -r:
-r Recursively copy entire directories.
If you are already logged into the remote machine and want to copy from your local, you need to make sure that your local machine is accessible via the internet and has ssh set up. I don't think this is what you are after but if it is, just run this from the remote:
username@domain $ scp dragonmnl@local:/path/to/file.ext ~/
answered Feb 17 '14 at 16:13
terdon♦
127k31245422
127k31245422
1
thanks. the problem was I was trying running scp inside ssh session. now it works!
– dragonmnl
Feb 17 '14 at 16:19
add a comment |
1
thanks. the problem was I was trying running scp inside ssh session. now it works!
– dragonmnl
Feb 17 '14 at 16:19
1
1
thanks. the problem was I was trying running scp inside ssh session. now it works!
– dragonmnl
Feb 17 '14 at 16:19
thanks. the problem was I was trying running scp inside ssh session. now it works!
– dragonmnl
Feb 17 '14 at 16:19
add a comment |
up vote
21
down vote
I provide two methods of up/down load file between remote and local machine(I use Mac air):
In this case, I want to up/down "11.jpeg " between local and remote:
1.
Copy files on service to local dir: You must be in local bash terminal to conduct this command, not when you are in ssh!
scp username@domain:/home/xxx/xxx/11.jpeg /Users/username/Desktop/
copy files in local dir to remote service : also you must be in local bash terminal
scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx
To achieve the same intention when you are logging in the SSH, you must first set “System Preferences>sharing>remote log in>all users(I am not sure if you must set for "all users", but it works in this situation)” the Mac will tell you"To log in to this computer remotely, type : ssh username@xxxxxx, then type in the command below:
scp username@domain:/home/xxx/xxx/11.jpeg username@xxxxxx:/Users/username/Desktop/
This command above is for downloading file from remote to local when you are logging into ssh, Just change the two path when you want to upload file .
Finally, I find Filezilla is probably the most convenient one in daily work~~
– maizer
Aug 14 at 19:57
add a comment |
up vote
21
down vote
I provide two methods of up/down load file between remote and local machine(I use Mac air):
In this case, I want to up/down "11.jpeg " between local and remote:
1.
Copy files on service to local dir: You must be in local bash terminal to conduct this command, not when you are in ssh!
scp username@domain:/home/xxx/xxx/11.jpeg /Users/username/Desktop/
copy files in local dir to remote service : also you must be in local bash terminal
scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx
To achieve the same intention when you are logging in the SSH, you must first set “System Preferences>sharing>remote log in>all users(I am not sure if you must set for "all users", but it works in this situation)” the Mac will tell you"To log in to this computer remotely, type : ssh username@xxxxxx, then type in the command below:
scp username@domain:/home/xxx/xxx/11.jpeg username@xxxxxx:/Users/username/Desktop/
This command above is for downloading file from remote to local when you are logging into ssh, Just change the two path when you want to upload file .
Finally, I find Filezilla is probably the most convenient one in daily work~~
– maizer
Aug 14 at 19:57
add a comment |
up vote
21
down vote
up vote
21
down vote
I provide two methods of up/down load file between remote and local machine(I use Mac air):
In this case, I want to up/down "11.jpeg " between local and remote:
1.
Copy files on service to local dir: You must be in local bash terminal to conduct this command, not when you are in ssh!
scp username@domain:/home/xxx/xxx/11.jpeg /Users/username/Desktop/
copy files in local dir to remote service : also you must be in local bash terminal
scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx
To achieve the same intention when you are logging in the SSH, you must first set “System Preferences>sharing>remote log in>all users(I am not sure if you must set for "all users", but it works in this situation)” the Mac will tell you"To log in to this computer remotely, type : ssh username@xxxxxx, then type in the command below:
scp username@domain:/home/xxx/xxx/11.jpeg username@xxxxxx:/Users/username/Desktop/
This command above is for downloading file from remote to local when you are logging into ssh, Just change the two path when you want to upload file .
I provide two methods of up/down load file between remote and local machine(I use Mac air):
In this case, I want to up/down "11.jpeg " between local and remote:
1.
Copy files on service to local dir: You must be in local bash terminal to conduct this command, not when you are in ssh!
scp username@domain:/home/xxx/xxx/11.jpeg /Users/username/Desktop/
copy files in local dir to remote service : also you must be in local bash terminal
scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx
To achieve the same intention when you are logging in the SSH, you must first set “System Preferences>sharing>remote log in>all users(I am not sure if you must set for "all users", but it works in this situation)” the Mac will tell you"To log in to this computer remotely, type : ssh username@xxxxxx, then type in the command below:
scp username@domain:/home/xxx/xxx/11.jpeg username@xxxxxx:/Users/username/Desktop/
This command above is for downloading file from remote to local when you are logging into ssh, Just change the two path when you want to upload file .
edited Oct 20 '16 at 20:10
answered Oct 20 '16 at 20:05
maizer
31124
31124
Finally, I find Filezilla is probably the most convenient one in daily work~~
– maizer
Aug 14 at 19:57
add a comment |
Finally, I find Filezilla is probably the most convenient one in daily work~~
– maizer
Aug 14 at 19:57
Finally, I find Filezilla is probably the most convenient one in daily work~~
– maizer
Aug 14 at 19:57
Finally, I find Filezilla is probably the most convenient one in daily work~~
– maizer
Aug 14 at 19:57
add a comment |
up vote
3
down vote
If you're running this scp command on the remote machine, it is looking for file.ext as a "local" file, i.e. on the remote machine.
To copy a file from the remote machine to the local one, use scp -P 2222 username@domain:dir/file.ext localdir (assuming that file.ext is in ~/dir on the remote computer, as in your example). If you run scp on the remote machine, reverse "local" and "remote".
1
The OP wants to copy from local to remote, see the OP's title.
– terdon♦
Feb 17 '14 at 16:10
Oops, I guess you're right. But he's apparently doing it backwards...
– alexis
Feb 17 '14 at 16:15
add a comment |
up vote
3
down vote
If you're running this scp command on the remote machine, it is looking for file.ext as a "local" file, i.e. on the remote machine.
To copy a file from the remote machine to the local one, use scp -P 2222 username@domain:dir/file.ext localdir (assuming that file.ext is in ~/dir on the remote computer, as in your example). If you run scp on the remote machine, reverse "local" and "remote".
1
The OP wants to copy from local to remote, see the OP's title.
– terdon♦
Feb 17 '14 at 16:10
Oops, I guess you're right. But he's apparently doing it backwards...
– alexis
Feb 17 '14 at 16:15
add a comment |
up vote
3
down vote
up vote
3
down vote
If you're running this scp command on the remote machine, it is looking for file.ext as a "local" file, i.e. on the remote machine.
To copy a file from the remote machine to the local one, use scp -P 2222 username@domain:dir/file.ext localdir (assuming that file.ext is in ~/dir on the remote computer, as in your example). If you run scp on the remote machine, reverse "local" and "remote".
If you're running this scp command on the remote machine, it is looking for file.ext as a "local" file, i.e. on the remote machine.
To copy a file from the remote machine to the local one, use scp -P 2222 username@domain:dir/file.ext localdir (assuming that file.ext is in ~/dir on the remote computer, as in your example). If you run scp on the remote machine, reverse "local" and "remote".
edited Feb 17 '14 at 16:16
answered Feb 17 '14 at 16:06
alexis
4,00021526
4,00021526
1
The OP wants to copy from local to remote, see the OP's title.
– terdon♦
Feb 17 '14 at 16:10
Oops, I guess you're right. But he's apparently doing it backwards...
– alexis
Feb 17 '14 at 16:15
add a comment |
1
The OP wants to copy from local to remote, see the OP's title.
– terdon♦
Feb 17 '14 at 16:10
Oops, I guess you're right. But he's apparently doing it backwards...
– alexis
Feb 17 '14 at 16:15
1
1
The OP wants to copy from local to remote, see the OP's title.
– terdon♦
Feb 17 '14 at 16:10
The OP wants to copy from local to remote, see the OP's title.
– terdon♦
Feb 17 '14 at 16:10
Oops, I guess you're right. But he's apparently doing it backwards...
– alexis
Feb 17 '14 at 16:15
Oops, I guess you're right. But he's apparently doing it backwards...
– alexis
Feb 17 '14 at 16:15
add a comment |
up vote
2
down vote
Use the scp command
If you want to transfer a folder, just zip it first, we can unzip it later on.
From your computer, run this:
$ scp your_path_to_the_file/the_file root@10.145.198.100:~/
Here, root is your account, and 10.145.198.100 is the remote server's IP address. We're going to copy the_file to ~/ folder in the remote.
Unzip file:
$ unzip the_zip_file.zip -d destination_folder
Why wouldrooteven have SSH access on the remote machine? That's pretty insecure. Better to use an ordinary use and thensudoto do whatever root has to do on that machine.
– Kusalananda
Jul 10 at 9:31
add a comment |
up vote
2
down vote
Use the scp command
If you want to transfer a folder, just zip it first, we can unzip it later on.
From your computer, run this:
$ scp your_path_to_the_file/the_file root@10.145.198.100:~/
Here, root is your account, and 10.145.198.100 is the remote server's IP address. We're going to copy the_file to ~/ folder in the remote.
Unzip file:
$ unzip the_zip_file.zip -d destination_folder
Why wouldrooteven have SSH access on the remote machine? That's pretty insecure. Better to use an ordinary use and thensudoto do whatever root has to do on that machine.
– Kusalananda
Jul 10 at 9:31
add a comment |
up vote
2
down vote
up vote
2
down vote
Use the scp command
If you want to transfer a folder, just zip it first, we can unzip it later on.
From your computer, run this:
$ scp your_path_to_the_file/the_file root@10.145.198.100:~/
Here, root is your account, and 10.145.198.100 is the remote server's IP address. We're going to copy the_file to ~/ folder in the remote.
Unzip file:
$ unzip the_zip_file.zip -d destination_folder
Use the scp command
If you want to transfer a folder, just zip it first, we can unzip it later on.
From your computer, run this:
$ scp your_path_to_the_file/the_file root@10.145.198.100:~/
Here, root is your account, and 10.145.198.100 is the remote server's IP address. We're going to copy the_file to ~/ folder in the remote.
Unzip file:
$ unzip the_zip_file.zip -d destination_folder
edited Jul 10 at 8:12
slm♦
245k66505671
245k66505671
answered Jul 10 at 8:04
Catbuilts
1213
1213
Why wouldrooteven have SSH access on the remote machine? That's pretty insecure. Better to use an ordinary use and thensudoto do whatever root has to do on that machine.
– Kusalananda
Jul 10 at 9:31
add a comment |
Why wouldrooteven have SSH access on the remote machine? That's pretty insecure. Better to use an ordinary use and thensudoto do whatever root has to do on that machine.
– Kusalananda
Jul 10 at 9:31
Why would
root even have SSH access on the remote machine? That's pretty insecure. Better to use an ordinary use and then sudo to do whatever root has to do on that machine.– Kusalananda
Jul 10 at 9:31
Why would
root even have SSH access on the remote machine? That's pretty insecure. Better to use an ordinary use and then sudo to do whatever root has to do on that machine.– Kusalananda
Jul 10 at 9:31
add a comment |
up vote
0
down vote
Solution to copy files from Linux client to Linux Server
Check if
sshdis running on your server using:
ps aux | grep sshdIf not install
OpenSSHusing
sudo apt-get install openssh-server openssh-client
https://www.tecmint.com/install-openssh-server-in-linux/Restart your server and verify that
sshdis running using
ps aux | grep sshdIf you need you can configure your
/etc/ssh/sshd_configfile, but its not
necessary for simple configurationsverify that the ports are open using
netcat
nc -v -z 127.0.0.1 22To copy files from a
Linuxclient to aLinuxclient use scp as follows
scp ~/filename.md username@10.22.33.45:~/folder/filename.mdTo verify that file has been copied use
ssh username@10.22.33.45and provide your password.
Solution to copy files from Linux client to `Windows
There are multiple clients for running SSH servers on Windows such as
OpenSSH from MS
MobaSSH
Bitvise SSH server
Install one of the above servers and make sure that port 22 is open using
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=TCP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=TCP localport=22
netsh advfirewall set allprofiles state off
Comparisons of these servers:
Bitvise SSH server
Provides almost close to native
cmdprompt,powershellprompt,
autocompletionProvides additional capabilities for customization, if you need
advanced usageUser customization for simple needs is 0. I got started on it within
2 mins, after having spent a lot of time trying to getMobaSSHand
OpenSSHto work.To copy files using scp use:
scp ~/filename.md username@10.33.44.45:/C/Users/username/filename.mdFree for personal use, $99 for professional use. Because of so many
features and great integration, the price is well worth the money
MobaSSH:
provides a linux shell on windows where simple linux commands such
asls,cp,findetc work, similar toMINGW64you can access
cmdandpowershelldirectly by typingcmdor
powershellUnicode support is poor. Encoding is not correct. For example if you
try to startPythoninterpretor, it will crash. You will need to
change the encoding manually using
(https://stackoverflow.com/a/12834315/4752883):
chcp 65001
set PYTHONIOENCONDING=utf-8
and then startup Python promptThe great thing about MobaSSH is that it has a very simple
user-interface, andscpandsshand integrated well. So will
work for simple use casesTo copy files from a
Linuxclient to aWindowsserver running
MobaSSH: use
scp ~/filename.md
username@10.33.44.45:/cygdrive/c/Users/username/filename.md
This is becauseMobaSSHis based oncygwinand its drives are
mapped to the same waycygwin-s drives are mapped.
Use VMs from Microsoft with OpenSSHv6.7 installed from
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/,
OpenSSHv6.7 is already installed.
Its very buggy, and you will need to heavily customize it.
Command completion doesnt work
It will leave blank spaces when you are moving cursor on the terminal
Python doesn't work
Later versions of OpenSSH, may have improved on it. Further MS seems to
make OpenSSH available viaOptional Features
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
add a comment |
up vote
0
down vote
Solution to copy files from Linux client to Linux Server
Check if
sshdis running on your server using:
ps aux | grep sshdIf not install
OpenSSHusing
sudo apt-get install openssh-server openssh-client
https://www.tecmint.com/install-openssh-server-in-linux/Restart your server and verify that
sshdis running using
ps aux | grep sshdIf you need you can configure your
/etc/ssh/sshd_configfile, but its not
necessary for simple configurationsverify that the ports are open using
netcat
nc -v -z 127.0.0.1 22To copy files from a
Linuxclient to aLinuxclient use scp as follows
scp ~/filename.md username@10.22.33.45:~/folder/filename.mdTo verify that file has been copied use
ssh username@10.22.33.45and provide your password.
Solution to copy files from Linux client to `Windows
There are multiple clients for running SSH servers on Windows such as
OpenSSH from MS
MobaSSH
Bitvise SSH server
Install one of the above servers and make sure that port 22 is open using
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=TCP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=TCP localport=22
netsh advfirewall set allprofiles state off
Comparisons of these servers:
Bitvise SSH server
Provides almost close to native
cmdprompt,powershellprompt,
autocompletionProvides additional capabilities for customization, if you need
advanced usageUser customization for simple needs is 0. I got started on it within
2 mins, after having spent a lot of time trying to getMobaSSHand
OpenSSHto work.To copy files using scp use:
scp ~/filename.md username@10.33.44.45:/C/Users/username/filename.mdFree for personal use, $99 for professional use. Because of so many
features and great integration, the price is well worth the money
MobaSSH:
provides a linux shell on windows where simple linux commands such
asls,cp,findetc work, similar toMINGW64you can access
cmdandpowershelldirectly by typingcmdor
powershellUnicode support is poor. Encoding is not correct. For example if you
try to startPythoninterpretor, it will crash. You will need to
change the encoding manually using
(https://stackoverflow.com/a/12834315/4752883):
chcp 65001
set PYTHONIOENCONDING=utf-8
and then startup Python promptThe great thing about MobaSSH is that it has a very simple
user-interface, andscpandsshand integrated well. So will
work for simple use casesTo copy files from a
Linuxclient to aWindowsserver running
MobaSSH: use
scp ~/filename.md
username@10.33.44.45:/cygdrive/c/Users/username/filename.md
This is becauseMobaSSHis based oncygwinand its drives are
mapped to the same waycygwin-s drives are mapped.
Use VMs from Microsoft with OpenSSHv6.7 installed from
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/,
OpenSSHv6.7 is already installed.
Its very buggy, and you will need to heavily customize it.
Command completion doesnt work
It will leave blank spaces when you are moving cursor on the terminal
Python doesn't work
Later versions of OpenSSH, may have improved on it. Further MS seems to
make OpenSSH available viaOptional Features
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
add a comment |
up vote
0
down vote
up vote
0
down vote
Solution to copy files from Linux client to Linux Server
Check if
sshdis running on your server using:
ps aux | grep sshdIf not install
OpenSSHusing
sudo apt-get install openssh-server openssh-client
https://www.tecmint.com/install-openssh-server-in-linux/Restart your server and verify that
sshdis running using
ps aux | grep sshdIf you need you can configure your
/etc/ssh/sshd_configfile, but its not
necessary for simple configurationsverify that the ports are open using
netcat
nc -v -z 127.0.0.1 22To copy files from a
Linuxclient to aLinuxclient use scp as follows
scp ~/filename.md username@10.22.33.45:~/folder/filename.mdTo verify that file has been copied use
ssh username@10.22.33.45and provide your password.
Solution to copy files from Linux client to `Windows
There are multiple clients for running SSH servers on Windows such as
OpenSSH from MS
MobaSSH
Bitvise SSH server
Install one of the above servers and make sure that port 22 is open using
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=TCP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=TCP localport=22
netsh advfirewall set allprofiles state off
Comparisons of these servers:
Bitvise SSH server
Provides almost close to native
cmdprompt,powershellprompt,
autocompletionProvides additional capabilities for customization, if you need
advanced usageUser customization for simple needs is 0. I got started on it within
2 mins, after having spent a lot of time trying to getMobaSSHand
OpenSSHto work.To copy files using scp use:
scp ~/filename.md username@10.33.44.45:/C/Users/username/filename.mdFree for personal use, $99 for professional use. Because of so many
features and great integration, the price is well worth the money
MobaSSH:
provides a linux shell on windows where simple linux commands such
asls,cp,findetc work, similar toMINGW64you can access
cmdandpowershelldirectly by typingcmdor
powershellUnicode support is poor. Encoding is not correct. For example if you
try to startPythoninterpretor, it will crash. You will need to
change the encoding manually using
(https://stackoverflow.com/a/12834315/4752883):
chcp 65001
set PYTHONIOENCONDING=utf-8
and then startup Python promptThe great thing about MobaSSH is that it has a very simple
user-interface, andscpandsshand integrated well. So will
work for simple use casesTo copy files from a
Linuxclient to aWindowsserver running
MobaSSH: use
scp ~/filename.md
username@10.33.44.45:/cygdrive/c/Users/username/filename.md
This is becauseMobaSSHis based oncygwinand its drives are
mapped to the same waycygwin-s drives are mapped.
Use VMs from Microsoft with OpenSSHv6.7 installed from
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/,
OpenSSHv6.7 is already installed.
Its very buggy, and you will need to heavily customize it.
Command completion doesnt work
It will leave blank spaces when you are moving cursor on the terminal
Python doesn't work
Later versions of OpenSSH, may have improved on it. Further MS seems to
make OpenSSH available viaOptional Features
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
Solution to copy files from Linux client to Linux Server
Check if
sshdis running on your server using:
ps aux | grep sshdIf not install
OpenSSHusing
sudo apt-get install openssh-server openssh-client
https://www.tecmint.com/install-openssh-server-in-linux/Restart your server and verify that
sshdis running using
ps aux | grep sshdIf you need you can configure your
/etc/ssh/sshd_configfile, but its not
necessary for simple configurationsverify that the ports are open using
netcat
nc -v -z 127.0.0.1 22To copy files from a
Linuxclient to aLinuxclient use scp as follows
scp ~/filename.md username@10.22.33.45:~/folder/filename.mdTo verify that file has been copied use
ssh username@10.22.33.45and provide your password.
Solution to copy files from Linux client to `Windows
There are multiple clients for running SSH servers on Windows such as
OpenSSH from MS
MobaSSH
Bitvise SSH server
Install one of the above servers and make sure that port 22 is open using
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=UDP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=TCP localport=22
netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=TCP localport=22
netsh advfirewall set allprofiles state off
Comparisons of these servers:
Bitvise SSH server
Provides almost close to native
cmdprompt,powershellprompt,
autocompletionProvides additional capabilities for customization, if you need
advanced usageUser customization for simple needs is 0. I got started on it within
2 mins, after having spent a lot of time trying to getMobaSSHand
OpenSSHto work.To copy files using scp use:
scp ~/filename.md username@10.33.44.45:/C/Users/username/filename.mdFree for personal use, $99 for professional use. Because of so many
features and great integration, the price is well worth the money
MobaSSH:
provides a linux shell on windows where simple linux commands such
asls,cp,findetc work, similar toMINGW64you can access
cmdandpowershelldirectly by typingcmdor
powershellUnicode support is poor. Encoding is not correct. For example if you
try to startPythoninterpretor, it will crash. You will need to
change the encoding manually using
(https://stackoverflow.com/a/12834315/4752883):
chcp 65001
set PYTHONIOENCONDING=utf-8
and then startup Python promptThe great thing about MobaSSH is that it has a very simple
user-interface, andscpandsshand integrated well. So will
work for simple use casesTo copy files from a
Linuxclient to aWindowsserver running
MobaSSH: use
scp ~/filename.md
username@10.33.44.45:/cygdrive/c/Users/username/filename.md
This is becauseMobaSSHis based oncygwinand its drives are
mapped to the same waycygwin-s drives are mapped.
Use VMs from Microsoft with OpenSSHv6.7 installed from
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/,
OpenSSHv6.7 is already installed.
Its very buggy, and you will need to heavily customize it.
Command completion doesnt work
It will leave blank spaces when you are moving cursor on the terminal
Python doesn't work
Later versions of OpenSSH, may have improved on it. Further MS seems to
make OpenSSH available viaOptional Features
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
answered Mar 12 at 1:04
alpha_989
1735
1735
add a comment |
add a comment |
up vote
0
down vote
Just a small contribution, maybe it can help beginners like me: the path to the the remote directory should be written like this: username@domain:~/remote_directory
What I want to highlight here is that we should always add that :~/
add a comment |
up vote
0
down vote
Just a small contribution, maybe it can help beginners like me: the path to the the remote directory should be written like this: username@domain:~/remote_directory
What I want to highlight here is that we should always add that :~/
add a comment |
up vote
0
down vote
up vote
0
down vote
Just a small contribution, maybe it can help beginners like me: the path to the the remote directory should be written like this: username@domain:~/remote_directory
What I want to highlight here is that we should always add that :~/
Just a small contribution, maybe it can help beginners like me: the path to the the remote directory should be written like this: username@domain:~/remote_directory
What I want to highlight here is that we should always add that :~/
answered Nov 29 at 15:52
Billal Begueradj
2271411
2271411
add a comment |
add a comment |
up vote
-1
down vote
If you happen to be on OSX...
When I tried running it with username@local:/file_directory...
I got the following error:
ssh: local: node name or service name not known
Solution
On my Mac I had to do the following to setup local ssh:
‘System Preferences’ --> ‘Internet & Networking’ --> ‘Sharing’ --> ENABLE ‘Remote Login’
This then provided the username@ip address.
add a comment |
up vote
-1
down vote
If you happen to be on OSX...
When I tried running it with username@local:/file_directory...
I got the following error:
ssh: local: node name or service name not known
Solution
On my Mac I had to do the following to setup local ssh:
‘System Preferences’ --> ‘Internet & Networking’ --> ‘Sharing’ --> ENABLE ‘Remote Login’
This then provided the username@ip address.
add a comment |
up vote
-1
down vote
up vote
-1
down vote
If you happen to be on OSX...
When I tried running it with username@local:/file_directory...
I got the following error:
ssh: local: node name or service name not known
Solution
On my Mac I had to do the following to setup local ssh:
‘System Preferences’ --> ‘Internet & Networking’ --> ‘Sharing’ --> ENABLE ‘Remote Login’
This then provided the username@ip address.
If you happen to be on OSX...
When I tried running it with username@local:/file_directory...
I got the following error:
ssh: local: node name or service name not known
Solution
On my Mac I had to do the following to setup local ssh:
‘System Preferences’ --> ‘Internet & Networking’ --> ‘Sharing’ --> ENABLE ‘Remote Login’
This then provided the username@ip address.
edited Jan 27 '15 at 19:31
slm♦
245k66505671
245k66505671
answered Jan 27 '15 at 18:42
Tim Maguire
11
11
add a comment |
add a comment |
up vote
-1
down vote
I had this same problem today on MAC.
Type the following command:
scp /local-file-path/ /-remote-location-path/
add a comment |
up vote
-1
down vote
I had this same problem today on MAC.
Type the following command:
scp /local-file-path/ /-remote-location-path/
add a comment |
up vote
-1
down vote
up vote
-1
down vote
I had this same problem today on MAC.
Type the following command:
scp /local-file-path/ /-remote-location-path/
I had this same problem today on MAC.
Type the following command:
scp /local-file-path/ /-remote-location-path/
edited Apr 13 at 9:09
Kevdog777
2,087123259
2,087123259
answered Apr 13 at 7:58
heiwa
1
1
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f115560%2fuse-scp-to-transfer-a-file-from-local-directory-x-to-remote-directory-y%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
it's slightly unclear whether your problem is only related to being on the wrong machine...could you please prefix each command with the host you are running on? e.g.
localuser@machineA: ssh -p 2222 username@domain(to indicate that you are running the ssh command as localuser on machineA)– umläute
Feb 17 '14 at 16:09
when using
scp, the remote side always has to contain the colon (e.g.remotehost:/tmp), else it will just do an ordinary copy (scp /tmp/foo.txt example.comwill copy/tmp/foo.txtinto a local fileexample.com)– umläute
Feb 17 '14 at 16:11
remove the
-rflag, as this is not needed for copying single files (it's used to recursively copy directories)– umläute
Feb 17 '14 at 16:12
Are you issuing the scp command inside the sshe session? It would make sense if you are on the local machine.
– alexis
Feb 17 '14 at 16:13
1
scp -P 2222 file.ext username@hostname-or-ip_address:/remote/path/
– Christopher
Feb 17 '14 at 16:14