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-конфигурации
Комментарии (4)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Gans Electro Уровень 28
21 апреля 2026
Как то сложно идет после других обычных курсов по языкам. Для себя понял что самое лучшее здесь это делать примеры у себя, причем писать все руками. Еще теперь веду файлик шпору. Стало гораздо лучше. Над задачами сильно не тружусь, сразу смотрю в правильное решение. Смотрю на нее как "Вот так надо". Иначе эти задачи самостоятельно решат только те кто уже знают тему. Иначе никак, ну как это можно знать заранее?
Konstantin Kubrak Уровень 1
10 февраля 2026
походу к задачам прикрутили проверку ИИ. Используешь "правильное решение" от жавараш, задача не проходит проверку решения, запускаешь ещё раз проверку - проверка пройдена
Megazen Уровень 12
18 июня 2025
Кто себе пролюбил весь мозг с генерацией ключика - вот верная команда ssh-keygen -t rsa -b 4096 Без указания алго шифрования оно будет генерить шляпу
Slevin Уровень 59
25 сентября 2025
у меня на wsl и так сгенерилось...