1. Что такое SSH?
Представьте себе, что вы находитесь на одном конце планеты, а сервер, который нужно настроить, — на другом. Работа школьного IT-специалиста с беготнёй по кабинетам — это совсем не то, что мы хотим. К счастью, есть SSH (Secure SHell) — инструмент для удалённого управления серверами.
SSH — это сетевой протокол, который позволяет безопасно подключаться к удалённым компьютерам. Подключение происходит с использованием шифрования, а это значит, что передаваемые данные защищены от посторонних глаз. SSH заменяет устаревшие методы вроде Telnet, которые передавали данные в открытом виде (как открытка Почты России).
Преимущества SSH
- Безопасность. SSH использует шифрование, защищая данные от перехвата.
- Гибкость. Удалённое управление сервером, передача файлов, создание туннелей — всё это доступно через SSH.
- Кроссплатформенность. Работает и на Linux, и на Windows (в том числе в WSL), и на MacOS.
Теперь, когда вы понимаете, зачем нужен SSH, давайте перейдём к практике.
2. Установка SSH-клиента
Начнём с клиента, который позволит подключаться к серверу. Если вы используете современный Linux-дистрибутив, клиент SSH, скорее всего, уже установлен. Проверим это:
ssh -V
Вы должны увидеть информацию о версии SSH-клиента. Если команда не найдена, установите его (на Ubuntu и других дистрибутивах на основе Debian):
sudo apt update
sudo apt install openssh-client
На MacOS SSH-клиент предустановлен, а если вы работаете в WSL, установка аналогична Linux.
3. Подключение к удалённому серверу через SSH
Подключение к серверу выполняется командой:
ssh username@hostname
username— это имя пользователя на удалённом сервере.hostname— это IP-адрес или доменное имя сервера.
Пример подключения:
ssh student@192.168.1.10
Если всё настроено правильно, система запросит пароль. После ввода пароля вы окажетесь в удалённой консоли сервера. Поздравляю, вы на полпути к профессии "оператор суперзлодея в фильме о хакерах".
4. Установка и настройка SSH-сервера
Установка SSH-сервера
Если вы работаете на сервере или локальной машине, куда хотите подключаться, нужно установить SSH-сервер. На Ubuntu сделайте это так:
sudo apt update
sudo apt install openssh-server
Проверим статус службы SSH:
sudo systemctl status ssh
Вы должны увидеть сообщение вроде active (running). Если сервер не запущен, используйте:
sudo systemctl start ssh
sudo systemctl enable ssh
Теперь SSH-сервер готов принимать подключения.
Настройка SSH-сервера
Основной файл конфигурации SSH-сервера — /etc/ssh/sshd_config. Чтобы его отредактировать, используйте любой текстовый редактор, например nano:
sudo nano /etc/ssh/sshd_config
Обратите внимание на следующие параметры:
Port 22— порт, на котором работает SSH.PermitRootLogin no— запрет подключения для root (рекомендуется оставитьnoиз соображений безопасности).PasswordAuthentication yes— разрешение подключения по паролю.
После изменения параметров перезапустите SSH-сервер:
sudo systemctl restart ssh
5. Использование ключевой аутентификации
Подключение по паролю — это удобно, но небезопасно. Лучший вариант — использование SSH-ключей.
Генерация SSH-ключей
На машине-клиенте выполните команду:
ssh-keygen
Скрипт запросит путь для сохранения ключа (по умолчанию ~/.ssh/id_rsa). Можно нажать Enter, чтобы принять его. Затем вас спросят про фразу-пароль. Лучше оставить пустым для упрощения (но это не совсем безопасно).
После выполнения команды файлы ключей будут созданы:
id_rsa— приватный ключ (не делайте его публичным, как исходный код вашего проекта до релиза, особенно если он оброс долгами).id_rsa.pub— публичный ключ (этот можно использовать для подключения).
Передача ключа на сервер
Используйте команду ssh-copy-id, чтобы передать публичный ключ на сервер:
ssh-copy-id username@hostname
Это добавит ваш публичный ключ в файл ~/.ssh/authorized_keys на сервере. Теперь вы можете подключаться без ввода пароля.
Попробуйте:
ssh username@hostname
Если всё прошло успешно, вас не спросят пароль. Ваша жизнь официально стала немного проще.
SSH и WSL
Если вы работаете в Windows через WSL, там тоже можно использовать SSH. Откройте терминал WSL и установите SSH-клиент:
sudo apt update
sudo apt install openssh-client
Дальнейшие действия такие же, как для Linux.
6. Практическая часть: настройка SSH на localhost
Для практики вы можете настроить SSH-соединение между двумя машинами в одной сети или даже на своём собственном компьютере (используя localhost как адрес).
- Установите SSH-сервер и клиент на одной машине.
- Подключитесь по локальному адресу:
ssh your_user@localhost
- Настройте подключение по ключу, как было показано выше.
В итоге у вас должно получиться подключение без ввода пароля.
7. Работа с конфигурациями и алиасами SSH
Если вы часто подключаетесь к разным серверам, можете упростить себе жизнь, добавив конфигурацию SSH в файл ~/.ssh/config:
Host myserver
HostName 192.168.1.10
User student
IdentityFile ~/.ssh/id_rsa
Теперь вы можете подключаться просто командой:
ssh myserver
Распространённые ошибки и их исправление
Ошибка "Connection refused". Это означает, что SSH-сервер не запущен на удалённой машине. Убедитесь, что он установлен и запущен.
Ошибка "Permission denied". Либо вы ввели неверный пароль, либо ключи настроены неправильно. Проверьте содержимое файла
~/.ssh/authorized_keysна сервере.Ошибка "No route to host". Проверьте, доступен ли сервер по сети (используйте
ping).
Теперь вы вооружены знаниями о том, как настраивать SSH, пользоваться ключами и избегать типичных проблем. Это мощный инструмент, который используется повсеместно, будь то настройка серверов на работе или управление домашним Raspberry Pi.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ