Настройка авторизации по 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Дополнения
Еще немного уточняющей информации.
Генерация ключей
- 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- 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- 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- 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. Иначе зайти не получается.