📖 Теория: повторение SSH/SCP

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

⚡ Ключевые концепции

  • SSH — Secure Shell. Шифрует весь трафик (включая пароли). Заменяет небезопасные Telnet/rlogin/ftp.
  • Ключи: ~/.ssh/id_rsa (приватный — НИКОМУ) + ~/.ssh/id_rsa.pub (публичный — передаётся на сервер).
  • Права ключей: chmod 600 ~/.ssh/id_rsa, папка chmod 700 ~/.ssh — иначе SSH откажет в подключении.
  • SCP — копирование файлов по протоколу SSH. Синтаксис аналогичен cp, но с user@host:.

Что такое SSH и зачем она нужна

SSH (Secure Shell) — сетевой протокол для безопасного управления удалёнными устройствами. До SSH администраторы использовали telnet, rlogin, ftp — они передавали данные, включая пароли, в открытом виде. SSH шифрует весь трафик, в том числе данные аутентификации.

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

  • Шифрование — весь трафик защищён, пароли не видны перехватчику
  • Аутентификация — по паролю или по паре ключей (рекомендуется)
  • Удалённый доступ — полноценная работа в терминале удалённой машины
  • Передача файлов — через SCP или SFTP поверх того же соединения

Как подключение происходит: пара ключей

При аутентификации по ключу создаётся два файла:

  • ~/.ssh/id_rsaприватный ключ. Хранится только у вас. Никому не передавать — тот, у кого есть этот файл, может войти на сервер от вашего имени.
  • ~/.ssh/id_rsa.pubпубличный ключ. Отдаётся преподавателю или администратору сервера; добавляется в ~/.ssh/authorized_keys на сервере.

Принцип: сервер проверяет, что клиент владеет приватным ключом, соответствующим публичному. Сам приватный ключ при этом никуда не передаётся.

Генерация ключей

# Генерация с параметрами по умолчанию (RSA 3072 бит)
ssh-keygen
# Нажимать Enter несколько раз — путь по умолчанию, без passphrase

# Просмотреть публичный ключ (отдать преподавателю)
cat ~/.ssh/id_rsa.pub
⚠️ Проверить по документации
Современная рекомендация — Ed25519 вместо RSA:
ssh-keygen -t ed25519 -C "your_email@example.com"
Ed25519 быстрее, безопаснее и генерирует более короткие ключи. Поддерживается в OpenSSH 6.5+ (2014). На учебном сервере работает стандартная команда ssh-keygen без флага типа.

Права на файлы ключей

SSH откажет в подключении, если права на ключи слишком широкие:

# Приватный ключ — только владелец читает
chmod 600 ~/.ssh/id_rsa

# Папка .ssh — только владелец видит содержимое
chmod 700 ~/.ssh

Ошибка Permissions too open означает, что права на ключ слишком широкие — другие пользователи могут его прочитать. SSH защищает вас от этой ситуации.

SCP — безопасное копирование файлов

scp (Secure Copy) работает поверх SSH. Синтаксис напоминает cp, но один из адресов — удалённый (user@host:путь):

# Скопировать файл С сервера в текущую папку
scp -i ~/.ssh/id_rsa ec2-user@linux.itcareerhub.de:/opt/GROUP/NAME/file.txt .

# Отправить файл НА сервер
scp -i ~/.ssh/id_rsa ./local.txt ec2-user@linux.itcareerhub.de:/opt/GROUP/NAME/

За подробным разбором команд обратитесь к Занятие 08: SSH — там полная теория с примерами.