Введение
SSH-ключи позволяют авторизоваться на виртуальном сервере более безопасным, чем используя пароль, путем – при помощи SSH. В то время как сервер можно взломать, если использовать метод подбора пароля (брутфорс), расшифровать SSH-ключи только этим способом практически невозможно. SSH представляет из себя пару ключей, один из которых открытый (публичный), а другой закрытый (или приватный, и он есть только у вас). Сначала вы помещаете файл с публичным ключом на свой SSH-сервер, а затем подключаетесь к серверу, используя приватный ключ. Корректная работа возможна только при наличии обоих ключей – и именно благодаря этому ваше сообщение будет безопасным, и при этом вам не нужно использовать пароль. Вы можете усилить безопасность такого способа авторизации, активировав для закрытого ключа запрос кодовой фразы.
Шаг 1 - Создайте пару RSA-ключей
Сначала вам необходимо создать пару ключей:
ssh-keygen -t rsa
Шаг 2 - Установите ключи и пароль
Как только вы введете команду генерации ключей, вам нужно будет определиться со следующим параметром:
Enter file in which to save the key (/home/yourdirect/.ssh/id_rsa):
Можете просто нажать Enter, и тогда файл будет сохранен в выбранную выше директорию по умолчанию.
Enter passphrase (empty for no passphrase):
Использование кодовой фразы является необязательным и остается на ваше усмотрение. Однако установка кодовой фразы имеет свое преимущество: если ваш закрытый ключ попадет в руки к злоумышленникам, они не смогут войти в аккаунт до тех пор, пока не подберут кодовое слово, а значит, у вас будет дополнительное время для принятия необходимых мер. Единственный недостаток использования кодового слова – это, естественно, необходимость вводить его каждый раз, когда вы авторизуетесь через SSH.
Полностью процесс создания ключей имеет такое кодовое выражение:
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/yourdirect/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/yourdirect/.ssh/id_rsa. Your public key has been saved in /home/yourdirect/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 yourdirect@a The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+
Местоположение публичного ключа теперь - /home/yourdirect/.ssh/id_rsa.pub, а закрытого – /home/yourdirect/.ssh/id_rsa.
Шаг 3 – копирование открытого ключа
После того, как вы создали пару ключей, необходимо добавить открытый ключ на нужный вам виртуальный сервер.
Вы можете сделать это двумя способами:
- Либо используя команду ssh-copy-id , чтобы скопировать на сервер в authorized_keys :
ssh-copy-id user@123.45.56.78
- Либо копируя ключи при помощи SSH:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Вне зависимости от выбранной команды вы увидите следующее (с вашими данными):
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts. user@12.34.56.78's password: Now try logging into the machine, with "ssh 'user@12.34.56.78'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
После этого вы можете авторизоваться как пользователь (user@12.34.56.78), и пароль не будет запрошен.
Шаг 4 – Деактивировать пароль для root-доступа
Это шаг не является обязательным.
Как только вы скопировали ваши SSH-ключи и удостоверились, что можете авторизоваться через SSH, вы можете ограничить доступ к правам суперпользователя (чтобы можно было заходить только через SSH).
Для этого откройте файл настройки SSH:
sudo nano /etc/ssh/sshd_config
Внутри этого файла вы найдете параметр PermitRootLogin – измените его так, чтобы пользователи могли авторизоваться только через SSH-соединение:
PermitRootLogin without-password
Чтобы изменения вступили в силу, введите:
reload ss
Комментарии
Да, вы можете использовать для подключения RSA-ключ, более подробно об его настройке можно прочитать в нашем Справочном центре: https://timeweb.com/ru/help/pages/viewpage.action?pageId=9241429