Help Center/ Elastic Cloud Server/ User Guide (ME-Abu Dhabi Region)/ FAQs/ File Upload/Data Transfer/ How Can I Use SFTP to Transfer Files Between a Local Linux Computer and a Linux ECS?
Updated on 2022-02-22 GMT+08:00

How Can I Use SFTP to Transfer Files Between a Local Linux Computer and a Linux ECS?

Scenarios

You want to use SFTP to transfer files between a local Linux computer and a Linux ECS. The following uses CentOS as an example.

Procedure

  1. Log in to the ECS as user root.
  2. Run the following command to check the OpenSSH version, which is expected to be 4.8p1 or later:

    ssh -V

    Information similar to the following is displayed:

    # OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
  3. Create a user group and a user (for example, user1).

    groupadd sftp

    useradd -g sftp -s /sbin/nologin user1

  4. Set a password for the user.

    passwd user1

    Figure 1 Setting a password
  5. Assign permissions to directories.

    chown root:sftp /home/user1

    chmod 755 -R /home/user1

    mkdir /home/user1/upload

    chown -R user1:sftp /home/user1/upload

    chmod -R 755 /home/user1/upload

  6. Run the following command to edit the sshd_config configuration file:

    vim /etc/ssh/sshd_config

    Comment out the following information:
    #Subsystem sftp /usr/libexec/openssh/sftp-server

    Add the following information:

    Subsystem sftp internal-sftp
    Match Group sftp
    ChrootDirectory /home/%u 
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
    Figure 2 sshd_config file with the added information
  7. Run the following command to restart the ECS:

    service sshd restart

    Alternatively, run the following command to restart sshd:

    systemctl restart sshd

  8. Run the following command on the local computer to set up the connection:

    sftp root@IP address

  9. Run the sftp command to check the connection.

  10. Transfer files or folders.

    To upload files or folders, run the put -r command.

    To download files or folders, run the get -r command.