Представьте, что у вас есть квартира (ваш сервер в интернете), и вам нужно постоянно заносить туда вещи (файлы вашего сайта или бота), менять мебель (код) и иногда проверять, всё ли в порядке. Для этого существуют специальные «двери и ключи» — протоколы FTP и SSH.
В этой статье мы разберём всё максимально простыми словами, как будто объясняем другу, который никогда раньше не работал с серверами. Без сложного жаргона, с примерами из жизни и пошаговыми инструкциями.
1. Что такое FTP? (File Transfer Protocol)
FTP — это старый, но очень простой способ передавать файлы на сервер.
Он появился в 1971 году — ещё до изобретения современного интернета. Представьте почтовый ящик, куда вы можете положить письмо или забрать его. FTP работает примерно так же.
Как это выглядит на практике:
- Вы открываете программу (например, FileZilla).
- Вводите адрес сервера, логин и пароль.
- Видите две панели: слева — ваши файлы на компьютере, справа — файлы на сервере.
- Перетаскиваете файлы мышкой — они загружаются или скачиваются.
Плюсы FTP:
- Очень простой
- Быстро осваивается
- Поддерживается почти всеми хостингами
Огромные минусы (почему его почти не используют):
- Всё передаётся открытым текстом — как открытка, которую может прочитать любой по дороге.
- Логин, пароль и все файлы могут перехватить.
- Легко взломать.
Вывод: FTP можно использовать только в двух случаях:
- На локальной сети внутри компании (где никто посторонний не может подключиться).
- Для совсем старых проектов, где по-другому не получается.
В 2026 году для нормальной работы мы используем защищённые варианты.
2. Что такое SSH? (Secure Shell)
SSH — это безопасная «защищённая оболочка». Это как секретный тоннель между вашим компьютером и сервером.
Через SSH вы можете:
- Подключаться к серверу и работать в командной строке (как будто сидите прямо за сервером).
- Передавать файлы безопасно.
- Запускать программы на сервере.
- Настраивать сервер удалённо.
Главное преимущество — всё шифруется. Даже если кто-то перехватит ваш трафик, он увидит только «кашу» из символов.
SSH работает на 22 порту (стандартно).
3. SFTP и SCP — безопасные братья FTP
- SFTP (SSH File Transfer Protocol) — это FTP, но внутри защищённого SSH-тоннеля. Самый удобный вариант для большинства людей.
- SCP (Secure Copy) — более простой способ быстро скопировать файлы через командную строку.
Большинство современных программ (FileZilla, WinSCP) поддерживают SFTP.
4. Публичный и приватный ключ — как это работает (простая аналогия)
Это самая важная и чуть сложная часть. Давайте разберём на примере.
Представьте, что у вас есть:
- Очень сложный замок (публичный ключ) — вы можете раздавать копии этого замка кому угодно.
- Один-единственный ключ от этого замка (приватный ключ) — он только у вас.
Любой, у кого есть замок (публичный ключ), может закрыть ящик. Но открыть его может только владелец настоящего ключа (приватного).
Важные правила:
- Приватный ключ никогда никому не давайте.
- Если кто-то украдёт ваш приватный ключ — он сможет зайти на сервер.
- Публичный ключ можно вставлять на сколько угодно серверов.
5. Пошаговая инструкция: как создать ключи
На Windows:
- Нажмите Win + S и введите PowerShell.
- Вставьте команду:
ssh-keygen -t ed25519 -C "yourname@vibecode.ru"
- Нажмите Enter несколько раз (или придумайте хорошую passphrase — дополнительный пароль).
На macOS и Linux:
Откройте терминал и выполните:
ssh-keygen -t ed25519 -C "yourname@vibecode.ru"
Рекомендуется именно Ed25519 — он современный, быстрый и очень надёжный.
После создания ключей вы получите два файла:
- id_ed25519 — приватный (храните как зеницу ока)
- id_ed25519.pub — публичный
6. Как добавить публичный ключ на сервер
Самый простой способ:
# С вашего компьютера
ssh-copy-id username@your-server-ip
Или вручную:
- Зайдите на сервер по паролю.
- Выполните команды:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
cat >> ~/.ssh/authorized_keys
(вставьте содержимое вашего .pub файла)
chmod 600 ~/.ssh/authorized_keys
7. Как подключаться удобно
Через программу (рекомендуется новичкам):
- FileZilla (бесплатная, работает везде)
- WinSCP (особенно хорош для Windows)
- Cyberduck
Через терминал:
ssh username@your-server-ip
Можно создать удобный файл конфигурации ~/.ssh/config:
Host myserver
HostName 123.456.789.012
User damir
IdentityFile ~/.ssh/id_ed25519
Port 22
Тогда подключение будет просто: ssh myserver
8. Лучшие практики безопасности
- Отключите вход по паролю полностью.
- Используйте длинную passphrase на приватном ключе.
- Создавайте отдельного пользователя для каждого проекта.
- Регулярно обновляйте систему сервера.
- Установите Fail2Ban (защита от перебора).
- Не используйте порт 22 (можно поменять на другой).
- Делайте резервные копии ключей в зашифрованном виде.
9. Частые проблемы и их решения
- «Permission denied (publickey)» — ключ не добавлен или неправильные права.
- «Connection refused» — SSH-сервер не запущен или блокирует фаервол.
- Ключ не работает после перезагрузки — проблема с правами на папку .ssh.
- Медленная работа — попробуйте алгоритм ed25519 вместо RSA.
10. Сравнительная таблица
Возможность Обычный FTP SFTP (SSH) SCP Безопасность Очень низкая Очень высокая Очень высокая Удобство для файлов Отличное Отличное Среднее Скорость Высокая Высокая Очень высокая Работа через командную строку Нет Да Да Рекомендация в 2026 Не использовать Основной выбор Для скриптов
Заключение
Теперь вы понимаете, что такое FTP, SSH, SFTP, публичные и приватные ключи.
Коротко запомнить:
- FTP — старый и опасный.
- SSH — современный и безопасный способ доступа.
- Ключи — самый надёжный метод входа (лучше паролей).
Начните с малого: сгенерируйте ключи, подключитесь через FileZilla по SFTP, отключите вход по паролю. Это один из самых важных навыков для любого человека, который работает с сайтами, ботами или приложениями.
Если что-то не получается — пишите в комментариях, разберём вашу конкретную ситуацию.