Передача файлов между локальным компьютером и удалённым сервером это одна из основных задач для администраторов и разработчиков. Простой способ сделать это безопасно это использовать SFTP (Secure File Transfer Protocol), который работает поверх SSH. В этой статье мы подробно разберём, как настроить SFTP, подключаться к серверу и управлять файлами с примерами команд.
Что такое SFTP
SFTP - это безопасная версия FTP, которая использует шифрование SSH для передачи данных. В отличие от обычного FTP, SFTP защищает ваши логины, пароли и файлы от перехвата. Этот протокол особенно полезен при работе с серверами в облаке или VPS.
Подготовка к работе
Перед тем как начать, убедитесь, что у вас есть:
Доступ к серверу по SSH (логин и пароль или приватный ключ).
Установленный SSH-клиент. В Ubuntu он обычно уже есть по умолчанию.
Проверить наличие клиента можно командой:
ssh -VПример вывода:
OpenSSH_9.3p1 Ubuntu-22.04, OpenSSL 3.1.2 10 Sep 2023Если SSH не установлен, установите его:
sudo apt update
sudo apt install openssh-clientНа сервере должен быть запущен SSH-сервис:
sudo systemctl status sshПример вывода, если сервис активен:
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2026-02-03 08:00:00 UTC; 1h 2min agoПодключение к серверу через SFTP
Для подключения используйте команду:
sftp username@server_ipНапример:
sftp jimmy@192.168.1.100Вывод может быть следующим:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:ABC123xyz...
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.100' (ECDSA) to the list of known hosts.
jimmy@192.168.1.100's password:
sftp>Теперь вы находитесь в интерактивной среде SFTP.
Основные команды SFTP
SFTP имеет собственный набор команд, которые позволяют управлять файлами на сервере.
Просмотр содержимого
lsВывод:
documents
downloads
projectsПереход в каталог
cd projectsПроверка текущей директории:
pwdВывод:
Remote working directory: /home/jimmy/projectsЗагрузка файлов на сервер
put local_file.txtПример:
put report.pdfВывод:
Uploading report.pdf to /home/jimmy/projects/report.pdf
report.pdf 100% 2MB 1.2MB/s 00:01Скачивание файлов с сервера
get remote_file.txtПример:
get backup.tar.gzВывод:
Fetching /home/jimmy/projects/backup.tar.gz to backup.tar.gz
backup.tar.gz 100% 5MB 2.3MB/s 00:02Создание и удаление каталогов
Создание:
mkdir new_folderУдаление:
rmdir old_folderКопирование нескольких файлов
Для загрузки всех файлов из каталога:
mput *.txtДля скачивания всех файлов:
mget *.logЗавершение работы
Чтобы выйти из SFTP:
exitИспользование ключей SSH для аутентификации
Для повышения безопасности лучше использовать ключи SSH вместо пароля.
Создаём ключ на локальной машине:
ssh-keygen -t ed25519 -C "your_email@example.com"Вывод:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/jimmy/.ssh/id_ed25519): [Press Enter]
Enter passphrase (empty for no passphrase): [Type a passphrase]Копируем публичный ключ на сервер:
ssh-copy-id jimmy@192.168.1.100Вывод:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/jimmy/.ssh/id_ed25519.pub"
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'jimmy@192.168.1.100'"Теперь при подключении SFTP пароль больше не требуется:
sftp jimmy@192.168.1.100Советы по безопасности
Всегда используйте сильные пароли или SSH-ключи.
Не открывайте SFTP на стандартном порту 22, если это возможно вместо этого используйте нестандартный.
Ограничивайте доступ к серверу по IP, если сервер публичный.
Регулярно обновляйте OpenSSH на сервере.