DevLearn logo
Skill Up With Me
Interactive Learning
Signing in…

Управление SSH-ключами и безопасный доступ

🔒 Sign in to use this
SSH-ключи и безопасный доступ

SSH шифрует удалённую оболочку и копирование файлов. Ключи заменяют пароли: приватный у вас, публичный на сервере. Генерация, authorized_keys, агент и риски forwarding.

Виджеты: таблица — пароль vs ключ; граф — где хранится доверие; code-explorer — пошаговые команды; вкладки — config и known_hosts.

Пароль и ключ
Строки — угрозы и эксплуатация: ключи нужны для автоматизации без хранения пароля в скриптах.
ПарольПара ключей SSH
Брутфорс / список паролейСлабые и переиспользуемые паролиПространство ключей Ed25519/RSA; PasswordAuthentication no на сервере
CI / AnsibleСекрет пароля в репо; MFA ломает неинтерактивDeploy keys, короткоживущие сертификаты; ansible через agent
РотацияМенять везде, где тот же парольНовая пара: добавить pubkey, проверить вход, удалить старую строку
АудитОбщий пароль — неясно, кто вошёлКомментарии к ключам; отдельные ключи на хост в config
Модель доверия

Граф: приватный ключ не отправляется на сервер — только подпись challenge. В authorized_keys одна строка на ключ; можно ограничить from= или command=.

Узлы: ноутбук с приватным ключом; на сервере только список публичных ключей. Не путайте с передачей пароля по сети.
sshd на сервере
💻Ваш ноутбук
🔐~/.ssh/id_ed25519
📋~/.ssh/authorized_keys
Команды
Порядок: генерация → копирование ключа → права → ssh-add. Частая ошибка — chmod 777 на ~/.ssh.
bash
1
ssh-keygen -t ed25519 -C "you@example.com"
2
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
3
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
4
eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_ed25519
Много хостов — config
Алиасы
sshconfig
Host prod
  HostName 10.0.1.50
  User deploy
  IdentityFile ~/.ssh/prod_ed25519
  ServerAliveInterval 60

Agent forwarding — редко

ssh -A пробрасывает агент на промежуточный хост — root там теоретически может злоупотребить ключами. Лучше ProxyJump в config.
ProxyJump: ssh -J bastion app.internal
Для критичного доступа — аппаратные токены (FIDO2).
⚠️Приватные ключи не в Git — в секрет-хранилища или краткоживущие учётные данные в CI.
🔒 Sign in to use this