Использование SSH ключей для подключения к серверу

Использование SSH ключей для подключения к серверу обеспечивает более высокий уровень безопасности по сравнению с паролями.

Создание SSH ключей

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

Используйте команду ssh-keygen для создания пары SSH ключей (приватного и публичного).

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa указывает тип ключа (RSA).

  • -b 4096 задает длину ключа в битах (4096 бит).

  • -C "your_email@example.com" добавляет комментарий (обычно ваш email).

После выполнения команды вам будет предложено указать путь для сохранения ключей. По умолчанию ключи сохраняются в ~/.ssh/id_rsa (приватный ключ) и ~/.ssh/id_rsa.pub (публичный ключ). Вы также можете указать другой путь, если хотите.

Enter file in which to save the key (/home/username/.ssh/id_rsa):

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

Установка пароля (опционально)

Вас спросят, хотите ли вы установить пароль для приватного ключа. Это добавляет дополнительный уровень защиты, но при каждом использовании ключа вам придется вводить пароль.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Введите пароль или оставьте пустым и нажмите Enter.

Добавление публичного ключа на сервер

Копирование ключа на сервер

Используйте команду ssh-copy-id, чтобы добавить ваш публичный ключ в файл ~/.ssh/authorized_keys на сервере. Это позволит вам подключаться к серверу без ввода пароля.

ssh-copy-id username@hostname
  • username — ваш логин на сервере.

  • hostname — IP-адрес или доменное имя сервера.

Например:

ssh-copy-id alice@192.168.1.10

Вам будет предложено ввести пароль для username на сервере. После успешного ввода ключ будет добавлен в файл authorized_keys.

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

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

  • Сначала скопируйте публичный ключ в буфер обмена:

    cat ~/.ssh/id_rsa.pub
  • Подключитесь к серверу:

    ssh username@hostname
  • Создайте каталог ~/.ssh, если он не существует:

    mkdir -p ~/.ssh
  • Создайте файл authorized_keys и добавьте туда ваш публичный ключ:

    nano ~/.ssh/authorized_keys

    Вставьте содержимое публичного ключа и сохраните файл (Ctrl + O, затем Enter, и выход из редактора (Ctrl + X)).

  • Установите правильные разрешения для файла и каталога:

    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh

Подключение к серверу с использованием ключа

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

ssh username@hostname
  • username — ваш логин на сервере.

  • hostname — IP-адрес или доменное имя сервера.

Использование нескольких ключей

Если у вас несколько ключей и вы хотите использовать конкретный ключ для подключения, используйте опцию -i:

ssh -i /path/to/private_key username@hostname

Настройка файла ~/.ssh/config

Для удобства вы можете настроить файл конфигурации SSH (~/.ssh/config), чтобы автоматически использовать определённые ключи для разных серверов.

Пример конфигурации:

Откройте файл ~/.ssh/config (создайте его, если его нет):

nano ~/.ssh/config

Добавьте следующие строки:

Host myserver
    HostName 192.168.1.10
    User alice
    IdentityFile ~/.ssh/id_rsa

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

ssh myserver

Удаление ключей

Если вы хотите удалить ключи или отозвать доступ, просто удалите публичный ключ из файла authorized_keys на сервере:

  • Подключитесь к серверу и откройте файл authorized_keys:

    nano ~/.ssh/authorized_keys
  • Найдите строку с вашим публичным ключом и удалите её.

Эти шаги помогут вам настроить и использовать SSH ключи для безопасного подключения к серверам.

Last updated