> ## Documentation Index
> Fetch the complete documentation index at: https://docs.box.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Using Box with SFTP

<div className="article_labels_list" style={{display: 'none'}} dangerouslySetInnerHTML={{__html: "Uploads and Downloads , Secure"}} />

SSH File Transfer Protocol (SFTP) uses secure shell encryption to enable you to securely send and receive files.

Box's SFTP service is available to Business and Enterprise accounts, except trial accounts, and must be enabled by your Box admin or co-admin. Box's SFTP service is not available for Personal accounts (Free or Pro).

Box FTP Server is a separate integration, enabled by default from **Enterprise Settings** > **Box Clients** > **Server**. We recommend using SFTP as a more secure option.

## Enable Box SFTP

As an admin or co-admin:

1. Go to the **Admin Console**, then select **Integrations**.
2. Select **Box SFTP Server**.
3. Click **Availability Status** and select **Available for all users**. You can also enable SFTP for select users and groups, or for all users except select ones.
4. Click **Save**.

<Note>
  **Note**: You can't grant SFTP access to specific folders. Box SFTP always provides access to the entire account.
</Note>

<h2 id="connect-to-boxs-sftp-server">
  Connect to Box's SFTP server
</h2>

Box SFTP supports only username and password authentication; Box does not support public key (SSH key) authentication.

1. Choose an SFTP client.
2. Use the following parameters:
   * **Server hostname:** sftp.services.box.com
   * **Username**: Your Box account email address (SSO login is not supported)
   * **Password**: Your Box account password
   * **Port**: 22
3. During connection, verify the **Host key** parameters:
   * **Algorithm**: ecdsa-sha2-nist256
   * **Fingerprint**: SHA256:An60IqVqISRa3o2GRscno7QLnsTrIy0BGIchIAvJ9ZM

## Firewall

If the connection to the SFTP server cannot be established, verify the URL you are using to access the Box SFTP service permits connection to port **22**. A list of SFTP service URLs is available [here](/en/box-admin-tools/box-security/configuring-a-firewall-for-box-applications-and-services).

## Single Sign-On (SSO)

Currently, Box SFTP does not support Single Sign-On (SSO).

If SSO is enabled for your account, you must create a Box-specific password to supplement your SSO login. To do this, use a browser to log in to your Box account and go to **Account Settings > Account**. Then scroll down to the **Authentication** section.

If you're using SSO, you must create a unique password to use with external applications that do not support SSO. If you have forgotten your current password, you can reset it.

## Two-step verification

If two-step verification is enabled for your account, the workflow for logging in is as follows:

1. Log in normally with your Box-specific password.
2. Receive a text message containing a six-character alphanumeric confirmation code.
3. Use this six-character code as Verification code in the SFTP client.

<Note>
  **Note:** FTP is not accessible when using authenticator app-based two-step verification. Please log in to Box via a browser and change to SMS-based or email two-step verification.
</Note>

## Box SFTP features

Box SFTP implements the following features:

* Authenticate with username and password
* Create directory
* Delete file or directory
* Download file
* Preserve file creation and modification times
* Rename, move file or directory
* Resumable downloads
* Traverse directories
* Upload file up to 32 GB in size

<Warning>
  **IMPORTANT:** Box SFTP limits directory listings to their first 100,000 items.
</Warning>

## File and folder name restrictions

When using SFTP, Box applies the same naming rules to files and folders as in the rest of Box. Box automatically removes non-printable ASCII characters, forward and backward slashes ("/", ""), and protected characters like "." and ".." from file names and folder names.
For full details, see [Limitations](https://developer.box.com/guides/files/limitations) in the Box Developer documentation.

## Unsupported operations

Box SFTP does not support the following operations:

* Batch process
* Change folder creation and modification times
* Change group
* Change last access time
* Change owner
* Change permissions
* Change weblink creation and modification times
* Download internal Box files (for example, Notes, Canvas)
* Link
* Resume upload
* Symlink
* Truncate file
* Upload files with 0 bytes in size
* Upload internal Box files (for example, Box Notes, Box Canvas)

## Using SFTP through the UNIX command line

### Authenticate user

`sftp -oPort=22 "user@example.com@sftp.services.box.com"`

### Change directory

Change remote directory to **path**.

`cd path`

### Create directory

Create a directory specified by **path**.

`mkdir path`

### Delete directory

Remove a directory specified by **path**.

`rmdir path`

### Delete file

Delete a file specified by **path**.

`rm path`

### Display remote working directory

`pwd`

### Download file or folder

Retrieve **remote-path** and store it on the local machine.  If **local-path** is not specified, it is given the same name it has in Box.

`get [-apR] remote-path [local-path]`

**-a**: Resume partial transfers of existing files.\
**-p:** Copy file or folder attributes **date created** and **date modified**.\
**-R**: Copy directories recursively.

### List files

Display a directory listing of either **path** or the current directory if **path** is not specified.

`ls [-l] [path]`

**-l**: Display additional details including ownership information.

### Rename file or folder

Rename a file from **oldpath** to **newpath**.

`rename oldpath newpath`

### Resume download file or folder

Resume download of the **remote-path**.  Equivalent to **get** with the **-a** flag set.

`reget [-pR] remote-path [local-path]`

### Troubleshooting

Run **sftp** command with **verbose** flag, then inspect the output.

`# verbose logging`\
`sftp -v -oPort=22 'user@example.com@sftp.services.box.com'`\
`# very verbose logging`\
`sftp -vv -oPort=22 'user@example.com@sftp.services.box.com'`\
`# very very verbose logging`\
`sftp -vvv -oPort=22 'user@example.com@sftp.services.box.com'`

### Upload file or folder

Upload **local-path** and store it in Box.  If **remote-path** is not specified, it is given the same name it has on the local machine.

`put [-pR] local-path [remote-path]`

**-R**: Copy directories recursively.\
**-p**: Preserve file attribute **date modified**.

## Using SFTP through curl

### Create directory

`curl sftp://sftp.services.box.com/ --user`\
`"user@example.com:password" -Q 'mkdir path'`

### Delete file

`curl sftp://sftp.services.box.com/ --user`\
`"user@example.com:password" -Q 'rm path'`

### Delete folder

`curl sftp://sftp.services.box.com/ --user`\
`"user@example.com:password" -Q 'rmdir path'`

### Display a directory listing of ***path***

`curl sftp://sftp.services.box.com/path/ --user`\
`"user@example.com"`\
`curl sftp://sftp.services.box.com/path/ --user`\
`"user@example.com:password"`

### Download file

`curl -O local-path sftp://sftp.services.box.com/path/ --user`\
`"user@example.com"`

### List directory files

Display a directory listing of the root directory.

`curl sftp://sftp.services.box.com --user "user@example.com"`\
`curl sftp://sftp.services.box.com --user`\
`"user@example.com:password"`

### Rename file or folder

`curl sftp://sftp.services.box.com/ --user`\
`"user@example.com:password" -Q 'rename oldpath newpath`'

### Troubleshooting

Run **curl** command with **verbose** flag, then inspect the output.

`# verbose logging`\
`curl -v sftp://sftp.services.box.com --user`\
`"user@example.com"`\
`# very verbose logging`\
`curl -vv sftp://sftp.services.box.com --user`\
`"user@example.com"`\
`# very, very verbose logging`\
`curl -vvv sftp://sftp.services.box.com --user`\
`"user@example.com"`

### Upload file

`curl -T local-path sftp://sftp.services.box.com/path/ --user`\
`"user@example.com:password"`

**--ftp-create-dirs**: Create missing directories.  When an SFTP operation uses a path that does not currently exist in Box, curl fails.

## Using SFTP through FileZilla

Use Box's SFTP service through FileZilla with the following server hostname and port:

Server hostname: **sftp\://sftp.services.box.com**\
Port: **22** (default)

## Using SFTP through other clients

To use Box's SFTP service through other SFTP clients, refer to the respective client's documentation.
