Все в кучу :)
Настройка авторизации по RSA-ключу

Настройка авторизации по RSA-ключу

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

Процесс настройки авторизации по ключу состоит из создания ключа на локальном компьютере и копировании его на сервер; процедура отличается в зависимости от используемой вами операционной системы.

Linux и MacOS

Создание RSA-ключей

Запустите терминал на вашем компьютере и выполните команду:

ssh-keygen

Вы увидите примерно следующее сообщение:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):

Нажмите Enter - ключ будет сохранен в указанную директорию по умолчанию.

Далее вам будет предложено задать пароль (кодовую фразу) для ключа. Вы можете задать ее или оставить пустой, просто нажав Enter. Обратите внимание, что если вы зададите кодовую фразу, ее потребуется вводить при каждой авторизации по ключу.

Процедура создания ключей завершена, ключи сохранены в директории ~/.ssh/ в файлах id_rsa и id_rsa.pub. Теперь их необходимо скопировать на сервер.

Копирование ключей на сервер

Выполните в терминале следующую команду, указав вместо user ваш логин от панели управления аккаунтом, а вместо server - имя или IP-адрес сервера:

ssh-copy-id user@server

В результате содержимое файла с публичным ключом id_rsa.pub будет скопировано в файл ~/.ssh/authorized_keys на сервере, и в дальнейшем вы сможете устанавливать соединение с сервером, используя команду:

ssh user@server

Добавление закрытого ключа в агент аутентификации

Далее нам остаётся только добавить закрытый ключ в агент аутентификации на локальном компьютере:

ssh-add

Если вы не получили сообщения вида "Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)", а получили оведомление вроде такого: "Could not open a connection to your authentication agent.", то следует запустить агента командой eval:

eval `ssh-agent -s`

И заново запустите ssh-add. Теперь вы можете пользоваться SSH на вашем компьютере, а в том числе и rsync, который использует SSH без авторизации в автоматическом режиме. Попробуйте подключиться снова к вашему серверу по SSH и убедитесь, что от вас не требуется ввести пароль. В противном случае, если пароль всё-таки требуется ввести, повторите процедуру получения SSH ключа заново.

Windows

Создание RSA-ключей

Для создания ключей в ОС Windows вам потребуется специальная программа - PuTTYgen. Вы можете скачать дистрибутив puttygen.exe с официального сайта PuTTY.

Запустите программу, в открывшемся окне выберите "Type of key - SSH-2 RSA и нажмите "Generate".

Пока создается ключ, водите мышью в хаотичном порядке в пространстве под строкой загрузки для генерации случайных значений.

После того, как ключ будет создан, в окне программы вы сможете задать "Key passphrase" (кодовую фразу) для ключа. Это необязательно (вы можете оставить строку пустой), но повысит безопасность. Если вы решите задать кодовую фразу, ее потребуется вводить при каждой авторизации по ключу.

Далее сохраните созданные ключи, нажав на кнопки "Save public key" и "Save private key", например, под именами id_rsa.pub и mykey.ppk. Также скопируйте и сохраните в любом текстовом файле содержимое окна "Public key for pasting…" - оно потребуется при копировании созданного ключа на сервер.

На этом процедура создания ключей завершена.

Копирование ключей на сервер

В процессе копирования ключей вам потребуется утилита pageant. Вы можете скачать дистрибутив pageant.exe с официального сайта PuTTY.

Подключитесь к серверу по SSH и выполните команду для создания на сервере директории и файла для хранения ключей:

mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys

Откройте созданный файл с помощью текстового редактора:

nano ~/.ssh/authorized_keys

Вставьте в него скопированный на предыдущем шаге текст public key из окна PuTTYgen и сохраните файл. Запустите pageant - его иконка появится в трее. Щелкните по ней правой кнопкой мыши и выберите Add Key.

В открывшемся окне укажите путь к приватному ключу mykey.ppk, сохраненному ранее, и нажмите Open. Если при создании ключа вы указывали кодовую фразу, pageant запросит ее на данном этапе. Для проверки работы авторизации по ключу снова запустите утилиту PuTTY, подключитесь к серверу по SSH и введите свой логин от панели управления аккаунтом. Если все настроено корректно, вы увидите подобный вывод в окне консоли:

Authenticating with public key "rsa-key-20151220" from agent

Дополнения

Еще немного уточняющей информации.

Генерация ключей

  1. Ed25519 key

Ed25519 is considered to be very secure. It is supported by OpenSSH 6.5 (2014) and all versions that followed. If your device does support this key, we recommend using it. The key size is fixed and cannot be changed.

$ ssh-keygen -t ed25519
  1. ECDSA key

ECDSA is supported by OpenSSH 5.7 (2011) and all versions that followed. You can set the key size to be 256, 384 or 521 bits. The default setting is 256 bits.

$ ssh-keygen -t ecdsa -b 521
  1. RSA key

Compared to other keys, RSA can be considered to be relatively old. It is not quite as secure as an Ed25519 key. RSA has a default key size of 3072 bits and should never be under 1024 bits. To increase security, you can set the key size to be 4096 bits.

$ ssh-keygen -t rsa -b 4096
  1. DSA key

DSA is considered to be relatively insecure. Support ended with OpenSSH 7.0 (2017). The key size is fixed as 1024 bits and cannot be changed.

Вход на Hetzner

Ключи должны иметь имена, которые создаются по умолчанию, типа id_ecdsa, id_rsa. Иначе зайти не получается.

Полезные ссылки