[Документация Yandex Cloud](../../../index.md) > [Yandex Compute Cloud](../../index.md) > [Пошаговые инструкции](../index.md) > Работа на виртуальной машине > Обмен файлами с ВМ

# Обмен файлами с виртуальной машиной Linux

Для обмена файлами с виртуальной машиной Linux рекомендуется использовать протоколы [SCP](https://ru.wikipedia.org/wiki/SCP) и [SFTP](https://ru.wikipedia.org/wiki/SFTP).

Оба протокола туннелируют TCP-соединений через протокол [SSH](https://ru.wikipedia.org/wiki/SSH) при передаче файлов, обеспечивая тот же уровень безопасности и аутентификации, что и SSH.

Для передачи файлов применяется та же пара ключей, что и для [подключения к виртуальной машине Linux по SSH](ssh.md).

## Обмен файлами с помощью SCP {#scp}

Для передачи файла `file1` из локального каталога в каталог на ВМ, выполните команду:

```bash
scp file1 <имя_пользователя>@<IP-адрес_ВМ>:<абсолютный_путь_к_каталогу_на_ВМ>
```

Если требуется скопировать файл под другим именем, укажите новое имя файла в адресе назначения. Например, чтобы записать файл `file1` в удаленный каталог под именем `file1.txt`, выполните команду:

```bash
scp file1 <имя_пользователя>@<IP-адрес_ВМ>:<абсолютный_путь_к_каталогу_на_ВМ>/file1.txt
```

Чтобы скопировать содержимое всего каталога целиком, используйте ключ `-r` перед названием каталога:

```bash
scp -r <локальный_каталог> <имя_пользователя>@<IP-адрес_ВМ>:<абсолютный_путь_к_каталогу_на_ВМ>
```

Чтобы поменять направление обмена файлами, укажите удаленный адрес перед локальным. Например, чтобы скачать файл `file2.txt` на локальный компьютер, выполните команду:

```bash
scp <имя_пользователя>@server_ip:<абсолютный_путь_к_каталогу_на_ВМ>/file2.txt <локальный_каталог>
```

## Обмен файлами с помощью SFTP {#sftp}

Чтобы воспользоваться средствами SFTP, установите соединение с удаленной ВМ. Для этого выполните команду:

```bash
sftp <имя_пользователя>@<IP-адрес_ВМ>
```

Эта команда переведет терминал в интерактивный режим на удаленном сервере. Перейдите в нужный каталог на удаленной ВМ, выполнив команду:

```bash
cd <абсолютный_путь_к_каталогу_на_ВМ>
```

Чтобы загрузить файл с локального компьютера в выбранный каталог на удаленной ВМ, выполните команду:

```bash
put <путь_к_файлу_на_локальном_компьютере>
```

Чтобы скачать файл с удаленной машины, выполните команду:

```bash
get <путь_к_файлу_на_ВМ>
```

Для копирования всего каталога целиком используйте в командах `put` и `get` ключ `-r`. Например, чтобы скопировать все файлы из локального каталога на удаленную ВМ, выполните команду:

```bash
put -r <путь_к_каталогу_на_локальном_компьютере>
```

{% note info %}

Для копирования необходимо, чтобы у пользователя было разрешение на запись в нужную папку на сервере назначения. 

{% endnote %}

## Обмен файлами с помощью клиентских приложений

Для обмена файлами можно воспользоваться клиентскими приложениями:

* [WinSCP](https://winscp.net/eng/docs/lang:ru) — поддерживает протоколы SCP и SFTP.
* [Filezilla](https://filezilla-project.org) — поддерживает протокол SFTP.