Пост

Настройка SSH ключей на Raspberry Pi

Использование SSH ключей для аутентификации на Raspberry Pi обеспечивает более высокий уровень безопасности по сравнению с паролями. SSH ключи практически невозможно подобрать brute-force атаками, что делает вашу систему значительно защищеннее. В этом руководстве мы рассмотрим процесс создания и настройки SSH ключей для безопасного доступа к Raspberry Pi с различных клиентов, включая Windows с PuTTY.

Настройка SSH ключей на Raspberry Pi

Описание/Введение: Использование SSH ключей для аутентификации на Raspberry Pi обеспечивает более высокий уровень безопасности по сравнению с паролями. SSH ключи практически невозможно подобрать brute-force атаками, что делает вашу систему значительно защищеннее. В этом руководстве мы рассмотрим процесс создания и настройки SSH ключей для безопасного доступа к Raspberry Pi с различных клиентов, включая Windows с PuTTY.

Генерация SSH ключа на клиентской машине

Для Linux/macOS:

  1. Откройте терминал и выполните:
    1
    
    ssh-keygen -t ed25519 -C "your_email@example.com"
    
  2. Укажите путь для сохранения ключа (по умолчанию ~/.ssh/id_ed25519)

  3. Установите надежную парольную фразу для ключа

Для Windows с PuTTY:

  1. Скачайте и запустите PuTTYgen

    Окно PuTTYgen при запуске

  2. Выберите тип ключа “EdDSA” или “RSA” (рекомендуется EdDSA)

  3. Нажмите “Generate” и двигайте мышкой для создания энтропии

    Процесс генерации ключа в PuTTYgen

  4. Сохраните приватный ключ в формате .ppk

  5. Скопируйте публичный ключ из поля “Public key for pasting into OpenSSH authorized_keys file”

Копирование публичного ключа на Raspberry Pi

Для Linux/macOS:

  1. Используйте команду ssh-copy-id:
    1
    
    ssh-copy-id pi@raspberrypi.local
    
  2. Введите пароль пользователя pi

Для Windows с PuTTY:

  1. Войдите на Raspberry Pi используя пароль:
    1
    
    ssh pi@raspberrypi.local
    
  2. Создайте директорию .ssh (если не существует):
    1
    
    mkdir -p ~/.ssh
    
  3. Откройте файл authorized_keys:
    1
    
    nano ~/.ssh/authorized_keys
    
  4. Вставьте скопированный из PuTTYgen публичный ключ

  5. Сохраните файл и выйдите

Настройка прав доступа к файлам ключей

Критически важная настройка прав доступа для безопасности.

  1. На Raspberry Pi установите правильные права:
    1
    2
    
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  2. Убедитесь, что владелец файлов правильный:
    1
    
    chown -R pi:pi ~/.ssh
    

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

Для Linux/macOS:

  1. Подключитесь к Raspberry Pi:
    1
    
    ssh pi@raspberrypi.local
    
  2. Если установлена парольная фраза, введите ее

Для Windows с PuTTY:

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

  2. В разделе “Session” введите адрес Raspberry Pi:
    1
    
    raspberrypi.local
    
  3. В разделе Connection → SSH → Auth → Credentials нажмите “Browse” и выберите ваш .ppk файл

    Настройки PuTTY с указанием пути к приватному ключу

  4. Вернитесь в раздел “Session”, сохраните настройки для будущего использования

  5. Нажмите “Open” для подключения

Использование Pageant для управления ключами в Windows

Упрощение работы с ключами через PuTTY Agent.

  1. Запустите Pageant (идет в комплекте с PuTTY)

  2. Добавьте приватный ключ в агент, нажав “Add Key”

  3. Введите парольную фразу если требуется

    Окно Pageant с загруженными ключами

  4. Теперь PuTTY будет автоматически использовать ключи из Pageant

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

Повышение безопасности путем отключения парольной аутентификации.

  1. На Raspberry Pi отредактируйте файл конфигурации SSH:
    1
    
    sudo nano /etc/ssh/sshd_config
    
  2. Найдите и измените следующие параметры:
    1
    2
    3
    
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    UsePAM no
    
  3. Перезапустите SSH службу:
    1
    
    sudo systemctl restart ssh
    

Преобразование ключей между форматами

Конвертация ключей между OpenSSH и PuTTY форматами.

  1. Из OpenSSH в PuTTY:
    • Откройте PuTTYgen
    • Нажмите “Load” и выберите приватный ключ OpenSSH
    • Сохраните как .ppk файл
  2. Из PuTTY в OpenSSH:
    • Откройте .ppk файл в PuTTYgen
    • Скопируйте публичный ключ из поля “Public key for pasting into OpenSSH authorized_keys file”

Настройка конфигурации SSH клиента

Для Linux/macOS:

  1. Создайте или отредактируйте файл конфигурации:
    1
    
    nano ~/.ssh/config
    
  2. Добавьте настройки для Raspberry Pi:
    1
    2
    3
    4
    5
    
    Host raspberrypi
        HostName raspberrypi.local
        User pi
        Port 22
        IdentityFile ~/.ssh/id_ed25519
    

Для Windows с PuTTY:

  1. В PuTTY сохраните сессию с настройками:
    • Host Name: raspberrypi.local
    • Порт: 22
    • В SSH → Auth указан путь к .ppk файлу
    • В Session введите имя сессии и нажмите “Save”

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

Для Linux/macOS:

  1. Скопируйте приватный ключ в безопасное место:
    1
    
    cp ~/.ssh/id_ed25519 ~/backup_ssh_key
    

Для Windows:

  1. Сохраните .ppk файлы в защищенном месте
  2. Экспортируйте ключи из Pageant если необходимо

Устранение проблем с SSH ключами

Общие проблемы:

1
2
3
4
5
# Проверьте права доступа на сервере
ls -la ~/.ssh/authorized_keys

# Проверьте логи SSH
sudo tail -f /var/log/auth.log

Проблемы в PuTTY:

  • Убедитесь, что выбран правильный .ppk файл
  • Проверьте, что Pageant запущен если используется
  • Убедитесь, что публичный ключ правильно скопирован на сервер

Проблема: Ключ не принимается

1
2
3
4
# Проверьте формат ключа
ssh-keygen -l -f ~/.ssh/id_ed25519

# Перекопируйте ключ на сервер

Мониторинг SSH подключений

Отслеживание успешных и неуспешных попыток входа.

  1. Просмотр последних подключений:
    1
    
    last
    
  2. Просмотр неудачных попыток входа:
    1
    
    sudo grep "Failed password" /var/log/auth.log
    
  3. Просмотр успешных SSH входов:
    1
    
    sudo grep "Accepted" /var/log/auth.log
    

Теперь ваш Raspberry Pi защищен с помощью SSH ключевой аутентификации, независимо от того, используете ли вы Linux, macOS или Windows с PuTTY. Этот метод значительно безопаснее паролей и обеспечивает надежную защиту от несанкционированного доступа к вашей системе.

Авторский пост защищен лицензией CC BY 4.0 .

© evdokimoff. Некоторые права защищены.

Использует тему Chirpy для Jekyll