JavaRush /Курсы /Docker SELF /Введение в SSH: настройка удалённого доступа, использован...

Введение в SSH: настройка удалённого доступа, использование ключей

Docker SELF
4 уровень , 3 лекция
Открыта

1. Что такое SSH?

Представьте себе, что вы находитесь на одном конце планеты, а сервер, который нужно настроить, — на другом. Работа школьного IT-специалиста с беготнёй по кабинетам — это совсем не то, что мы хотим. К счастью, есть SSH (Secure SHell) — инструмент для удалённого управления серверами.

SSH — это сетевой протокол, который позволяет безопасно подключаться к удалённым компьютерам. Подключение происходит с использованием шифрования, а это значит, что передаваемые данные защищены от посторонних глаз. SSH заменяет устаревшие методы вроде Telnet, которые передавали данные в открытом виде (как открытка Почты России).

Преимущества SSH

  1. Безопасность. SSH использует шифрование, защищая данные от перехвата.
  2. Гибкость. Удалённое управление сервером, передача файлов, создание туннелей — всё это доступно через SSH.
  3. Кроссплатформенность. Работает и на 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 как адрес).

  1. Установите SSH-сервер и клиент на одной машине.
  2. Подключитесь по локальному адресу:
ssh your_user@localhost
  1. Настройте подключение по ключу, как было показано выше.

В итоге у вас должно получиться подключение без ввода пароля.


7. Работа с конфигурациями и алиасами SSH

Если вы часто подключаетесь к разным серверам, можете упростить себе жизнь, добавив конфигурацию SSH в файл ~/.ssh/config:

Host myserver
    HostName 192.168.1.10
    User student
    IdentityFile ~/.ssh/id_rsa

Теперь вы можете подключаться просто командой:

ssh myserver

Распространённые ошибки и их исправление

  1. Ошибка "Connection refused". Это означает, что SSH-сервер не запущен на удалённой машине. Убедитесь, что он установлен и запущен.

  2. Ошибка "Permission denied". Либо вы ввели неверный пароль, либо ключи настроены неправильно. Проверьте содержимое файла ~/.ssh/authorized_keys на сервере.

  3. Ошибка "No route to host". Проверьте, доступен ли сервер по сети (используйте ping).


Теперь вы вооружены знаниями о том, как настраивать SSH, пользоваться ключами и избегать типичных проблем. Это мощный инструмент, который используется повсеместно, будь то настройка серверов на работе или управление домашним Raspberry Pi.

1
Задача
Docker SELF, 4 уровень, 3 лекция
Недоступна
Установка SSH-клиента
Установка SSH-клиента
1
Задача
Docker SELF, 4 уровень, 3 лекция
Недоступна
Генерация SSH-ключей и настройка аутентификации
Генерация SSH-ключей и настройка аутентификации
1
Задача
Docker SELF, 4 уровень, 3 лекция
Недоступна
Настройка файла SSH-конфигурации
Настройка файла SSH-конфигурации
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Megazen Уровень 12
18 июня 2025
Кто себе пролюбил весь мозг с генерацией ключика - вот верная команда ssh-keygen -t rsa -b 4096 Без указания алго шифрования оно будет генерить шляпу
Slevin Уровень 11
25 сентября 2025
у меня на wsl и так сгенерилось...