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

Что такое SSH-ключи?
SSH-ключи — это пара файлов:

  • Приватный ключ — хранится на вашем компьютере. Никогда не передавайте его другим!

  • Публичный ключ — размещается на сервере.

Когда вы подключаетесь к серверу, система проверяет, совпадают ли ключи. Если да, доступ разрешается.

 

Настройка SSH-ключей на Linux (Клиент Linux -> Сервер Linux)

Шаг 1: Убедитесь, что OpenSSH установлен

На большинстве Linux-систем OpenSSH уже установлен. Если нет, установите его:

  • Ubuntu/Debian:

sudo apt update
sudo apt install openssh-client openssh-server
  • CentOS:

sudo yum install openssh-clients openssh-server

Шаг 2: Создайте SSH-ключ

1. Откройте терминал.

2. Введите команду для создания ключ

ssh-keygen -t ed25519 -C "ваш_email@example.com"
  • -t ed25519 — тип ключа (рекомендуется для безопасности).
  • -C "ваш_email@example.com" — комментарий (можно указать любой текст)

3. Нажмите Enter, чтобы сохранить ключи в папке по умолчанию (~/.ssh/id_ed25519).

4. Укажите парольную фразу (passphrase). Это добавит дополнительную защиту.

 

После выполнения команды вы увидите сообщение:

Your identification has been saved in /home/ваш_пользователь/.ssh/id_ed25519
Your public key has been saved in /home/ваш_пользователь/.ssh/id_ed25519.pub

 

Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:JPDzeSan06C9+osd+sKXWP0RmPk4UbSESaTvYn0aXVk root@test-server1.com
The key's randomart image is:
+---[RSA 3072]----+
|.    oo+o        |
|     o   .o...   |
|     + o  =.   E |
|      = o= .  o  |
|   S.=+ .o       |
|   o.@+.o.       |
| ..oB.=oo.       |
|  +=o= +.        |
|  +**..          |
+----[SHA256]-----+

 

Шаг 3: Скопируйте публичный ключ на сервер

Используйте команду:

ssh-copy-id user@ip-адрес-сервера  

Замените user на имя пользователя на сервере, а ip-адрес-сервера на IP-адрес вашего сервера.

 

Если команда ssh-copy-id недоступна, скопируйте ключ вручную:

1. Откройте файл с публичным ключом:

cat ~/.ssh/id_ed25519.pub

2. Скопируйте его содержимое.

3. Подключитесь к серверу:

ssh user@ip-адрес-сервера

4. Откройте файл ~/.ssh/authorized_keys на сервере:

nano ~/.ssh/authorized_keys  

5. Вставьте скопированный ключ и сохраните файл.

Шаг 4: Подключитесь к серверу

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

ssh user@ip-адрес-сервера

 

Настройка SSH-ключей на Windows (Клиент Windowsx -> Сервер Linux)

Вариант 1: Использование OpenSSH (встроенный в Windows 10/11)

Шаг 1: Убедитесь, что OpenSSH установлен

1. Откройте PowerShell от имени администратора.

2. Проверьте, установлен ли OpenSSH:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'

Если статус NotPresent, установите OpenSSH:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Шаг 2: Создайте SSH-ключи

1. Откройте PowerShell.

2. Выполните команду для генерации ключей:

ssh-keygen -t ed25519 -C "ваш_email@example.com"
  • -t ed25519 — тип ключа (рекомендуется для безопасности).
  • -C "ваш_email@example.com" — комментарий (можно указать любой текст).

3. Нажмите Enter, чтобы сохранить ключи в папке по умолчанию

(C:\Users\ваш_пользователь\.ssh\id_ed25519).

4. Укажите парольную фразу (passphrase) для дополнительной защиты.

После выполнения команды вы увидите сообщение:

Your identification has been saved in C:\Users\ваш_пользователь\.ssh\id_ed25519  
Your public key has been saved in C:\Users\ваш_пользователь\.ssh\id_ed25519.pub  

Шаг 3: Скопируйте публичный ключ на сервер

1. Откройте файл с публичным ключом:

type $env:USERPROFILE\.ssh\id_ed25519.pub

2. Скопируйте его содержимое.

3. Подключитесь к серверу:

ssh user@ip-адрес-сервера

4. Откройте файл ~/.ssh/authorized_keys на сервере:

nano ~/.ssh/authorized_keys

5. Вставьте скопированный ключ и сохраните файл.

Шаг 4: Подключитесь к серверу
Теперь вы можете подключиться к серверу без пароля:
ssh user@ip-адрес-сервера  

Вариант 2: Использование PuTTY (классический инструмент для Windows)

Шаг 1: Установите PuTTY и PuTTYgen

1. Скачайте и установите PuTTY с официального сайта: https://www.putty.org.

2. Убедитесь, что установлен PuTTYgen (генератор ключей).

Шаг 2: Создайте SSH-ключи с помощью PuTTYgen

1. Запустите PuTTYgen.

2. Выберите тип ключа (например, RSA или Ed25519).

3. Нажмите Generate и перемещайте курсор для генерации случайных данных.

4. Сохраните приватный ключ (например,  mykey.ppk ) и публичный ключ.

5. При сохранении закрытого ключа, если не заполнено поле Key passphrase, появится запрос «Хотите ли вы сохранить ключ без секретной фразы?»

Шаг 3: Скопируйте публичный ключ на сервер

1. Откройте файл с публичным ключом в PuTTYgen.

2. Скопируйте его содержимое.

3. Подключитесь к серверу с помощью PuTTY (используя логин и пароль).

4 .Откройте файл ~/.ssh/authorized_keys на сервере:

nano ~/.ssh/authorized_keys

5. Вставьте скопированный ключ и сохраните файл.

Шаг 4: Настройте PuTTY для использования приватного ключа

1. Запустите PuTTY.

2. В разделе Connection → SSH → Auth укажите путь к сохраненному приватному ключу (mykey.ppk).

3. Вернитесь в раздел Session, введите IP-адрес сервера и нажмите Open.

4. Подключитесь к серверу.

Отключение аутентификации по паролю

Чтобы повысить безопасность, отключите вход по паролю:

1. Подключитесь к серверу по SSH.

2. Откройте файл конфигурации SSH:

sudo nano /etc/ssh/sshd_config

3. Найдите строку PasswordAuthentication и измените её значение на no.

4. Перезапустите SSH-сервис:

sudo systemctl restart sshd

Советы по безопасности

1. Защитите приватный ключ. Никогда не передавайте его другим.

2. Используйте парольную фразу. Это добавит дополнительный уровень защиты.

3. Регулярно обновляйте ключи. Генерируйте новые ключи каждые несколько месяцев.

4. Ограничьте доступ к файлу authorized_keys. Убедитесь, что только владелец имеет права на запись:

chmod 600 ~/.ssh/authorized_keys

Заключение

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

Следуя этому руководству, вы сможете легко настроить SSH-ключи на Linux и Windows и подключиться к серверу без пароля. Начните использовать SSH-ключи уже сегодня, чтобы повысить уровень безопасности ваших систем.