Главная
Главная Руководства Разное › Генерируем ключи для доступа по ssh



Автор:

Статья опубликована: 2019-11-19 08:20:12
Последние правки: 2019-11-19 09:11:30

Ключи SSH являются парными, один из них - закрытый (приватный), другой - открытый (публичный). Приватный ключ нельзя давать никому, особо параноидальные граждане могут дополнительно зашифровать приватный ключ, задав пароль во время генерации ключей, но этот пароль у вас будут спрашивать при каждом подключении. Публичный ключ смело раздаем, его необходимо поместить на сервера, к которым необходим доступ по ssh.

  • RSA

    Старый добрый RSA работает везде (кроме тех мест, где он специально отключен сисадмином). Единственное - не задавайте длину ключа меньше 4096.
    $ ssh-keygen -t rsa -b 4096
    
    -b - длина RSA ключа, допустимый интервал значений 2048-16384 бит


  • DSA

    У DSA длина ключа неизменна - 2048 бит.
    $ ssh-keygen -t dsa
    


  • ECDSA

    ECDSA (the Elliptic Curve Digital Signature Algorithm) обеспечивает такой же уровень защиты, что и методы выше, но имеет меньший размер ключей и операции с ним более быстрые. Он указан в качестве предпочтительного алгоритма для аутентификации в OpenSSH 5.7.
    $ ssh-keygen -t ecdsa -b 384 -C "$(whoami)@$(hostname)"
    
    -b - длина ECDSA ключа, может быть 256, 384 или 521 бит

    Помните, что ECDSA работает не везде (например, на старых версиях openssh), также многие производители отключают ECDSA из-за проблем с патентом и т.д. Ещё одна интересная деталь: достоверность кривых, подготовленных NIST, ставится под сомнение, так как эти граждане плотно работают с NSA, а те, в свою очередь, уже были пойманы на встраивании бекдоров везде куда можно. Но, если вам нечего скрывать от правительства США - можете использовать ECDSA.


  • Ed25519

    Представлен публике в OpenSSH 6.5 и "обеспечивает лучшую защиту, чем ECDSA и DSA, и хорошую производительность".
    $ ssh-keygen -t ed25519
    
    Длина ed25519 постоянна и равняется 256 бит. Разработчики применили новый формат ключа, который «использует функцию деривации ключа на основе bcrypt, которая делает атаки с грубой силой против украденных частных ключей намного медленнее» и, как следствие, присутствует несовместимость со старыми версиями openssh.