Featured image of post Создание SSH-Ключа и копирование его на удаленный сервер

Создание SSH-Ключа и копирование его на удаленный сервер

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

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

Однако существует метод, который облегчает вход на сервер и одновременно повышает безопасность соединения. Это аутентификация посредством SSH-ключа. Вам не придётся каждый раз вводить пароль при подключении к серверу через SSH. Вместо этого процесс проверки подлинности будет осуществляться с использованием ключа, который хранится на вашем компьютере.

Всего для такой аутентификация используется два ключа:

  • приватный ― этот ключ будет храниться на диске вашего компьютера. Его нельзя никому показывать и пересылать;
  • публичный (открытый) ― его нужно будет поместить на сервер. Ниже создадим пару ключей на вашем компьютере, а затем поместим открытый ключ на сервер.

Как создать SSH-ключ

Linux / MacOS

  1. Откройте терминал.
  2. Запустите генератор SSH-ключей:
  • Linux
ssh-keygen
  • MacOS
ssh-keygen -t rsa
  1. Выберите директорию, в которой хотите сохранить файл. Если хотите оставить путь по умолчанию (~/.ssh/id_rsa), нажмите Enter.
  2. Для дополнительной защиты можно указать кодовую фразу. Она будет периодически запрашиваться при подключении к серверу. Если не хотите задавать фразу, пропустите этот шаг клавишей Enter.

Готово, приватный и открытый ключи сгенерированы и сохранены.

Как добавить SSH-ключ на сервер

Linux / MacOS

  1. Откройте терминал.
  2. Скопируйте открытый ключ на сервер командой:
ssh-copy-id root@123.123.123.123

Где:

  • root ― логин пользователя на сервере,
  • 123.123.123.123 ― IP-адрес сервера.
  1. Введите пароль от сервера.

Полуручно добавление ключа

ssh root@123.123.123.123 'mkdir -pm 700 ~/.ssh; echo ' $(cat ~/.ssh/id_rsa.pub) ' >> ~/.ssh/authorized_keys; chmod 600 ~/.ssh/authorized_keys'

Эта последовательность команд создаст специальную папку протокола на сервере (в случае, если отсутствует) с соответствующими разрешениями (700) на запись и чтение. Далее создастся файл authorized_keys — в нем хранятся публичные ключи всех разрешенных пользователей. Поэтому именно в него будет записана информация из локального файла (со стандартным названием) с открытым ключом клиента. Если authorized_keys уже есть на удаленном сервере, то он будет просто дополнен. По итогу эта команда дополнительно устанавливает соответствующее разрешение на файл authorized_keys внутри системы удаленного хоста.

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

Built with Hugo
Theme Stack designed by Jimmy