📖 SSH — Secure Shell

К оглавлению урока

⚡ Главное за 1 минуту

  • SSH — протокол безопасного удалённого доступа; шифрует весь трафик.
  • Генерация ключей: ssh-keygen~/.ssh/id_rsa (приватный) + ~/.ssh/id_rsa.pub (публичный).
  • Подключение: ssh -i ~/.ssh/id_rsa ec2-user@linux.itcareerhub.de
  • scp: scp -i ~/.ssh/id_rsa файл ec2-user@linux.itcareerhub.de:/opt/ГРУППА/ИМЯ/
  • Приватный ключ — только у вас. Никому не передавать!

Что такое SSH

SSH (Secure Shell) — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений. Схож по функциональности с Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая передаваемые пароли.

Характеристики SSH

ХарактеристикаОписание
Шифрование данныхВесь трафик между клиентом и сервером шифруется — перехват невозможен
АутентификацияПо паролю или по паре ключей (приватный + публичный)
Удалённый доступВход в удалённую систему через командную строку
Передача файловБезопасное копирование файлов через scp

Ключ SSH: приватный и публичный

Генерация SSH-ключа — это процесс создания пары ключей: приватного и публичного.

Генерация ключа: ssh-keygen

Команда создаёт два файла:

ssh-keygen
# Нажимать Enter несколько раз:
# - Enter: принять путь по умолчанию (~/.ssh/id_rsa)
# - Enter: без пароля (passphrase пустой)
# - Enter: подтвердить

После генерации в ~/.ssh/ появятся:

  • id_rsaприватный ключ (хранить только у себя, никому не передавать)
  • id_rsa.pubпубличный ключ (можно показывать и копировать на серверы)

Просмотр ключей

cat ~/.ssh/id_rsa.pub   # просмотр публичного ключа — для отправки преподавателю
cat ~/.ssh/id_rsa       # просмотр приватного ключа — только для себя!

Структура публичного ключа

Публичный ключ выглядит как одна длинная строка:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9... bitnami@ip-172-31-39-14
  • ssh-rsa — алгоритм ключа
  • AAAAB3NzaC1... — тело публичного ключа (несколько сотен символов)
  • bitnami@ip-172-31-39-14 — комментарий (автор ключа)
Важно при копировании ключа!
В Linux важен каждый символ, включая пробелы. При копировании публичного ключа не захватывайте лишние символы — ключ должен быть одной строкой без переносов.

Аналогия с замком и ключом

Принцип работы пары ключей:

  • Приватный ключ — это физический ключ от замка. Только у вас. Хранится на вашем компьютере в ~/.ssh/id_rsa.
  • Публичный ключ — это замок на двери сервера. Любой может посмотреть, но открыть только вашим ключом. Хранится на сервере в ~/.ssh/authorized_keys.

При подключении SSH-демон проверяет: совпадает ли ваш приватный ключ с публичным на сервере. Если да — вход разрешён.

Подключение к серверу

ssh -i ~/.ssh/id_rsa ec2-user@linux.itcareerhub.de
  • ssh — запустить SSH-соединение
  • -i ~/.ssh/id_rsa — путь к приватному ключу на вашей машине
  • ec2-user — имя пользователя на сервере
  • @ — разделитель между пользователем и хостом
  • linux.itcareerhub.de — адрес учебного сервера

После входа вы попадёте в домашнюю папку пользователя ec2-user на сервере.

SCP — безопасная передача файлов

SCP (Secure Copy Protocol) — протокол для безопасной передачи файлов между компьютерами. Работает поверх SSH, шифрует данные при передаче.

Синтаксис scp

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

Примеры использования

# Скопировать файл с сервера в текущую папку
scp -i ~/.ssh/id_rsa ec2-user@linux.itcareerhub.de:/opt/ГРУППА/ИМЯ/file .

# Отправить файл на сервер
scp -i ~/.ssh/id_rsa ./file.txt ec2-user@linux.itcareerhub.de:/opt/ГРУППА/ИМЯ/

Точка . в конце первого примера — текущая папка как место назначения.