Представь, что твой TrueNAS сервер — это крепость с данными. SSH — это не просто потайная дверь, а главный, безопасный и контролируемый вход для администратора. Давай разберем, как правильно его построить, открыть и защитить от незваных гостей.
Что такое SSH в TrueNAS и зачем он нужен?
SSH (Secure Shell) — это криптографический сетевой протокол, который позволяет безопасно подключаться к командной строке TrueNAS по сети. В отличие от веб-интерфейса, SSH дает полный доступ к системе на уровне shell (обычно это root или admin пользователь). Это необходимо для:
- Продвинутой диагностики и просмотра логов (
/var/log/). - Выполнения команд, недоступных через GUI.
- Автоматизации задач с помощью скриптов (cron, bash).
- Резервного копирования конфигурации вручную.
- Управления службами и мониторинга ресурсов в реальном времени.
root по умолчанию.
Как включить SSH сервер в TrueNAS
Настройка SSH выполняется через веб-интерфейс. Это база, с которой мы начинаем.
Шаг 1: Находим настройки службы SSH
Зайди в веб-интерфейс TrueNAS (Core или Scale). Перейди в раздел:
Система (System) -> Службы (Services)
Найди службу SSH в списке и нажми на значок карандаша (Настроить).
Шаг 2: Базовая конфигурация SSH
Перед тобой откроется форма с параметрами. Вот ключевые настройки для старта:
| Параметр | Рекомендуемое значение | Объяснение |
|---|---|---|
TCP Port |
22 (или нестандартный, напр. 2222) | Стандартный порт SSH. Смена на нестандартный усложняет автоматические атаки. |
Log in as Root with password |
Снять галочку | Критически важная настройка безопасности! Запрещает вход root по паролю. |
Allow Password Authentication |
Снять галочку (после настройки ключей) | Полностью отключает аутентификацию по паролю, оставляя только ключи. |
Allow TCP Port Forwarding |
По необходимости | Нужно для туннелирования трафика. Для обычного администрирования можно выключить. |
После настройки нажми SAVE, а затем в основном списке служб переведи переключатель SSH в состояние ON (Вкл).
systemd и конфигом /etc/ssh/sshd_config. TrueNAS Core (FreeBSD) использует свой механизм, но интерфейс похож.
Подключение к TrueNAS по SSH: Пароль vs Ключ
Теперь давай подключимся. Базовое подключение с клиента (Linux/macOS или Windows с Putty/WSL) выглядит так:
ssh admin@192.168.1.100
Где admin — пользователь TrueNAS (или root), а 192.168.1.100 — IP-адрес твоего сервера.
Настройка аутентификации по SSH-ключу (надежный способ)
Пароли уязвимы к брутфорсу. Ключи — нет. Вот как перейти на них:
1. Генерация ключевой пары на клиенте
ssh-keygen -t ed25519 -C "truenas_admin_key" -f ~/.ssh/truenas_key
Будут созданы два файла: truenas_key (приватный, храни у себя) и truenas_key.pub (публичный, загружаем на сервер).
2. Загрузка публичного ключа в TrueNAS
Самый правильный способ — через веб-интерфейс. Иди в раздел:
Учетные записи (Accounts) -> Пользователи (Users)
Найди пользователя (например, admin), открой его редактирование. Внизу есть поле «SSH Public Key». Скопируй содержимое файла truenas_key.pub (оно начинается с ssh-ed25519 AAAAC3...) и вставь в это поле. Сохрани.
3. Подключение с использованием ключа
ssh -i ~/.ssh/truenas_key admin@192.168.1.100
Чтобы не указывать ключ каждый раз, добавь его в SSH-агент (ssh-add ~/.ssh/truenas_key) или настрой конфиг клиента ~/.ssh/config:
Host truenas
HostName 192.168.1.100
User admin
IdentityFile ~/.ssh/truenas_key
Port 22 # или твой кастомный порт
Теперь можно подключаться просто командой: ssh truenas.
Повышение безопасности SSH в TrueNAS
После настройки ключей нужно «закрыть люки».
- Отключи аутентификацию по паролю. Вернись в настройки службы SSH и убери галочку
Allow Password Authentication. Сохрани и перезапусти службу. - Смени порт SSH. Укажи нестандартный порт (например, 2222) в настройках. Не забудь указать его при подключении:
ssh -p 2222 admin@host. - Используй Fail2ban (TrueNAS Scale). Установи через
aptв shell и настрой для блокировки IP после неудачных попыток. - Ограничь доступ по IP. Если твоя сеть статична, используй настройки брандмауэра на маршрутизаторе или в самой TrueNAS (если доступно), чтобы разрешить SSH только с определенных IP-адресов.
Частые проблемы и их решение (FAQ)
1. Ошибка "Permission denied (publickey,password)"
Причина: Сервер отверг оба метода аутентификации.
- Проверь, что публичный ключ скопирован в профиль пользователя без лишних пробелов и разрывов строк.
- Убедись, что у приватного ключа на клиенте правильные права:
chmod 600 ~/.ssh/truenas_key. - Временно включи вход по паролю в настройках SSH, чтобы проверить базовую доступность.
2. SSH подключение очень медленное
Причина: Часто из-за попыток обратного DNS-разрешения.
Добавь в конфиг клиента (~/.ssh/config) для хоста TrueNAS:
GSSAPIAuthentication no
UseDNS no
3. Как сбросить или изменить SSH ключ root?
Зайди в веб-интерфейс -> Пользователи. Для пользователя root (или admin) удали старый ключ из поля «SSH Public Key» и вставь новый. Если доступ потерян полностью, может потребоваться консоль (монитор и клавиатура, подключенные к серверу) или IPMI.
4. В чем разница между SSH в TrueNAS Core и Scale?
TrueNAS Core (FreeBSD): Конфиг управляется через GUI, файл /etc/ssh/sshd_config генерируется автоматически. Не редактируй его вручную — изменения потеряются. Ключи пользователей хранятся в системе TrueNAS.
TrueNAS Scale (Linux): Более гибкий. Конфиг также генерируется, но можно делать кастомные настройки через systemctl restart ssh. Ключи интегрируются в стандартные ~/.ssh/authorized_keys пользователей.
Заключение
Настройка SSH в TrueNAS — это не просто «включить кнопку». Это создание защищенного, контролируемого канала для управления. Алгоритм всегда один: включи службу → настрой доступ по ключам → отключи пароли → усиль безопасность дополнительными мерами.
Потрать время на настройку SSH-ключей один раз — и ты получишь не только удобный, но и максимально безопасный доступ к командной строке своего хранилища. Это уровень senior-администратора: автоматизация, безопасность и полный контроль.