null

SSH ключи, или как упростить аутентификацию на серверах

В мире информационных технологий безопасность данных и доступа к ресурсам является одной из главных задач. Одним из ключевых инструментов обеспечения безопасности являются SSH ключи (Secure Shell keys). В этой статье мы рассмотрим, что такое SSH ключи, как они работают, и как их использовать для обеспечения безопасного доступа к удаленным серверам и системам.

Для начала определимся, что такое SSH. Secure Shell, или SSH – сетевой протокол, позволяющий управлять операционными системами удаленно через терминал.

 

 

Что такое SSH ключи?

SSH ключи — это пара криптографических ключей, которые используются для аутентификации пользователей при подключении к серверам по протоколу SSH (Secure Shell). SSH ключи состоят из двух частей:

  • Public Key (открытый ключ): Может быть свободно распространен и известен всем. Он используется для шифрования данных.
  • Private Key (закрытый ключ): Должен храниться в секрете и известен только владельцу. Он используется для дешифрования данных.

 

 

Как работают SSH ключи?

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

  1. Генерируется пара ключей: Public Key и Private Key.
  2. Public Key копируется на удаленный сервер, обычно в файл ~/.ssh/authorized_keys.
  3. Private Key хранится на локальном компьютере пользователя.

Аутентификация:

  1. При подключении к серверу по SSH, клиент использует Private Key для генерации подписи.
  2. Сервер проверяет подпись с использованием Public Key, который был добавлен в authorized_keys.
  3. Если подпись верна, сервер разрешает доступ.

 

 

Как создать и использовать SSH ключи?

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

Для генерации пары SSH ключей используйте команду ssh-keygen:

ssh-keygen -t rsa -b 4096 -C "my_email@example.com"

-t rsa: Указывает тип ключа (RSA).

-b 4096: Указывает длину ключа (по умолчанию 2048).

-C "my_email@example.com": Добавляет комментарий.

После выполнения команды будет создана пара ключей: id_rsa (Private Key) и id_rsa.pub (Public Key).

 

2. Копирование Public Key на сервер

Для копирования Public Key на удаленный сервер можно использовать команду ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_server

Эта команда добавит Public Key в файл ~/.ssh/authorized_keys на удаленном сервере.

 

3. Подключение с использованием SSH ключей

Теперь вы можете подключиться к удаленному серверу без ввода пароля:

ssh user@remote_server

 

 

Как обезопасить файл ~/.ssh/authorized_keys внутри системы?

Рекомендуемые разрешения для чтения и записи для пользователя и недоступны для других — 644

  • 6 (rw-): Владелец файла имеет права на чтение и запись.

  • 4 (r--): Группа, к которой принадлежит файл, имеет права только на чтение.

  • 4 (r--): Все остальные пользователи имеют права только на чтение.

Установка прав доступа 644 гарантирует, что только владелец файла и пользователи с правами администратора могут читать содержимое файла. Это предотвращает случайное или злонамеренное распространение ключей.

 

 

Заключение

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

Назад Вперед