SSH-ключ — пара криптографических ключей: публичный (public key, ~4 КБ, безопасно показывать всему миру) и приватный (private key, ~4 КБ, храните в секрете). Публичный кладёте в ~/.ssh/authorized_keys на сервере, приватный — на своём ноутбуке. При подключении сервер шлёт "челлендж", ваш SSH-клиент подписывает его приватным ключом, сервер проверяет подпись публичным. Пароль не передаётся.
Алгоритмы: RSA 2048/3072/4096 — старый стандарт, всё ещё безопасен для 3072+. Ed25519 — современный, быстрее и короче. ECDSA — тоже эллиптическая, но реже используется. Рекомендация: генерируйте `ssh-keygen -t ed25519` для новых проектов.
Почему безопаснее пароля: (1) 4096-битный ключ невозможно подобрать перебором даже за миллиарды лет, (2) фишинг не работает — приватный ключ у вас, никуда не отправляется, (3) можно легко ротировать (удалить одну строку в authorized_keys), (4) audit-friendly — каждый ключ идентифицирует конкретного пользователя.
На всех наших VPS SSH-парольный вход по умолчанию отключён. При создании указываете public key из панели — только с этим ключом можно войти как root. Дополнительный ключ добавляется через `ssh-copy-id` или ручным редактированием authorized_keys.