SSH File Transfer(Ubuntu)

Posted by Nathan on 2017-11-08

[1] It’s the exmaple for using SCP (Secure Copy).

# scp [Option] Source Target
# copy the [test.txt] on local to remote server [www.srv.world\]
ubuntu@dlp:~$ scp ./test.txt ubuntu@www.srv.world:~/
ubuntu@10.0.0.30‘s password: # password of the user
test.txt 100% 10 0.0KB/s 00:00

# copy the [/home/ubuntu/test.txt] on remote server [www.srv.world\] to the local
ubuntu@dlp:~$ scp ubuntu@www.srv.world:/home/ubuntu/test.txt ./test.txt
ubuntu@10.0.0.30‘s password:
test.txt 100% 10 0.0KB/s 00:00

[2] It’s example to use SFTP (SSH File Transfer Protocol). SFTP server function is enabled by default, but if not, enable it to add the line [Subsystem sftp /usr/lib/openssh/sftp-server] in [/etc/ssh/sshd_config].

# sftp [Option] [user@host]
ubuntu@dlp:~$ sftp ubuntu@www.srv.world
ubuntu@www.srv.world‘s password: # password of the user
Connected to www.srv.world.
sftp>
# show current directory on remote server
sftp> pwd
Remote working directory: /home/ubuntu
# show current directory on local server
sftp> !pwd
/home/ubuntu
# show files in current directory on FTP server
sftp> ls -l
drwxrwxr-x 2 ubuntu ubuntu 6 Jul 29 21:33 public_html
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 28 22:53 test.txt
# show files in current directory on local server
sftp> !ls -l
total 4
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:31 test.txt
# change directory
sftp> cd public_html
sftp> pwd
Remote working directory: /home/ubuntu/public_html
# upload a file to remote server
sftp> put test.txt ubuntu.txt
Uploading test.txt to /home/ubuntu/ubuntu.txt
test.txt 100% 10 0.0KB/s 00:00
sftp> ls -l
drwxrwxr-x 2 ubuntu ubuntu 6 Jul 29 21:33 public_html
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:39 ubuntu.txt
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 28 22:53 test.txt
# upload some files to remote server
sftp> put .txt
Uploading test.txt to /home/ubuntu/test.txt
test.txt 100% 10 0.0KB/s 00:00
Uploading test2.txt to /home/ubuntu/test2.txt
test2.txt 100% 0 0.0KB/s 00:00
sftp> ls -l
drwxrwxr-x 2 ubuntu ubuntu 6 Jul 29 21:33 public_html
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:39 ubuntu.txt
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:45 test.txt
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:46 test2.txt
# download a file from remote server
sftp> get test.txt
Fetching /home/ubuntu/test.txt to test.txt
/home/ubuntu/test.txt 100% 10 0.0KB/s 00:00
# download some files from remote server
sftp> get
.txt
Fetching /home/ubuntu/ubuntu.txt to ubuntu.txt
/home/ubuntu/ubuntu.txt 100% 10 0.0KB/s 00:00
Fetching /home/ubuntu/test.txt to test.txt
/home/ubuntu/test.txt 100% 10 0.0KB/s 00:00
Fetching /home/ubuntu/test2.txt to test2.txt
/home/ubuntu/test2.txt 100% 10 0.0KB/s 00:00
# create a directory on remote server
sftp> mkdir testdir
sftp> ls -l
drwxrwxr-x 2 ubuntu ubuntu 6 Jul 29 21:33 public_html
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:39 ubuntu.txt
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:45 test.txt
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:46 test2.txt
drwxrwxr-x 2 ubuntu ubuntu 6 Jul 29 21:53 testdir
# delete a directory on remote server
sftp> rmdir testdir
rmdir ok, `testdir’ removed
sftp> ls -l
drwxrwxr-x 2 ubuntu ubuntu 6 Jul 29 21:33 public_html
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:39 ubuntu.txt
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:45 test.txt
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:46 test2.txt
# delete a file on remote server
sftp> rm test2.txt
Removing /home/ubuntu/test2.txt
sftp> ls -l
drwxrwxr-x 2 ubuntu ubuntu 6 Jul 29 21:33 public_html
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:39 ubuntu.txt
-rw-rw-r– 1 ubuntu ubuntu 10 Jul 29 21:45 test.txt
# execute commands with “![command]“
sftp> !cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin


ubuntu:x:1001:1001::/home/ubuntu:/bin/bash
# exit
sftp> quit
221 Goodbye.