Курс: Продающий лендинг для вашего бизнеса Бесплатно
Создайте сайт с нуля за 40 минут и запустите продажи

Как настроить SSH-ключи и кодовую фразу для сервера

3 комментария

Введение

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

Запустите свой сервер Timeweb

Комментарии

KeyJoo +4
28 ноя в 2018
А на виртуальном хостинге Timeweb возможно подключение по ssh-ключу без использования пароля?
Свернуть ответы
Кристина Лихова +208
28 ноя в 2018
Добрый день.

Да, вы можете использовать для подключения RSA-ключ, более подробно об его настройке можно прочитать в нашем Справочном центре: https://timeweb.com/ru/help/pages/viewpage.action?pageId=9241429
KeyJoo +4
03 дек в 2018
Кристина, спасибо. Уже всё настроил ).
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте