SSH авторизация по ключу
Настройка SSH авторизации по ключу на Linux
Шаг 1: Создание пары ключей SSH
- Откройте терминал на вашем локальном компьютере.
- Запустите следующую команду для создания новой пары ключей (замените
[email protected]
на вашу электронную почту):
ssh-keygen -t rsa -b 4096 -C "[email protected]"
- При появлении запроса укажите путь для сохранения ключа (нажмите Enter для использования пути по умолчанию).
- Введите парольную фразу для дополнительной безопасности при запросе (можно оставить пустым для безпарольного доступа).
Шаг 2: Установка публичного ключа на сервер
- Скопируйте публичный ключ на сервер с помощью следующей команды:
ssh-copy-id user@hostname
ssh-copy-id -i ~/.ssh/id_rsa [email protected]
Проверяем возможность залогиниться
ssh [email protected]
Замените user
на ваше имя пользователя и hostname
на IP-адрес или имя хоста сервера.
Шаг 3: Настройка SSH на сервере
- Войдите на сервер:
ssh user@hostname
- Отредактируйте файл конфигурации SSH:
sudo nano /etc/ssh/sshd_config
- Убедитесь, что следующие строки настроены так:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
- Отключите аутентификацию по паролю, установив:
PasswordAuthentication no
- Сохраните изменения и закройте редактор.
- Перезапустите SSH сервис для применения изменений:
sudo systemctl restart sshd
Шаг 4: Проверка
- Попытайтесь войти на сервер с вашего локального компьютера:
ssh user@hostname
Если всё настроено правильно, система позволит вам войти на сервер без запроса пароля.
Bash скрипта для генерации SSH ключа
Шаг 1: Сохранение скрипта
- Откройте текстовый редактор (например,
nano
илиvim
). - Вставьте следующий код скрипта:
#!/bin/bash # Запросить комментарий echo "Введите комментарий для ключа (по умолчанию ''):" read comment comment=${comment:-""} # Запросить пароль для ключа echo "Введите пароль для ключа (нажмите Enter для отсутствия пароля):" read -s password # Запросить имя файла для ключа echo "Введите имя файла для ключа (по умолчанию 'homelab'):" read filename filename=${filename:-"homelab"} # Генерация ключа с использованием алгоритма ed25519 if [ -z "$password" ]; then ssh-keygen -t ed25519 -C "$comment" -f "$filename" else ssh-keygen -t ed25519 -C "$comment" -N "$password" -f "$filename" fi echo "Ключ сгенерирован и сохранен в $filename"
Сохраните файл, например, как generate_ssh_key.sh.
Шаг 2: Сделать скрипт исполняемым
Откройте терминал и перейдите к директории, где сохранен файл:
cd путь/к/директории
Сделайте файл исполняемым:
chmod +x generate_ssh_key.sh
Шаг 3: Запуск скрипта
Запустите скрипт в терминале:
./generate_ssh_key.sh
Следуйте подсказкам скрипта для ввода комментария, пароля и имени файла.
Шаг 4: Проверка результата
После выполнения скрипта вы увидите сообщение о том, что ключ сгенерирован и сохранен в указанном файле.
Проверьте содержимое каталога командой ls для убедительности наличия нового ключа.