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