Что такое 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/ГРУППА/ИМЯ/
Точка . в конце первого примера — текущая папка как место назначения.