Как настроить SSH-ключи в Ubuntu 18.04

Настройка SSH-ключей в Ubuntu

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

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

В этом руководстве мы подробно расскажем, как сгенерировать SSH-ключи на компьютерах с Ubuntu 18.04. Мы также покажем, как настроить аутентификацию на основе SSH-ключей и подключаться к удалённым серверам Linux без ввода пароля.

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

Перед генерацией новой пары SSH-ключей проверьте наличие существующих SSH-ключей на клиентском компьютере Ubuntu. Это можно сделать, выполнив следующую команду ls :

 ls -l ~/.ssh/id_*.pub

Если приведенная выше команда выводит что-то вроде No such file or directory или no matches found это означает, что на вашем клиентском компьютере нет ключей SSH, и вы можете перейти к следующему шагу и сгенерировать пару ключей SSH.

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

Создайте новую пару ключей SSH длиной 4096 бит, указав свой адрес электронной почты в качестве комментария, введя:

 ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

Вывод будет выглядеть примерно так:

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

Нажмите Enter , чтобы принять местоположение и имя файла по умолчанию.

Далее вам будет предложено ввести безопасную парольную фразу. Использовать пароль или нет — решать вам. Использование парольной фразы обеспечит вам дополнительный уровень безопасности.

 Enter passphrase (empty for no passphrase):

Если вы не хотите использовать пароль, просто нажмите Enter .

Все взаимодействие выглядит так:

Сгенерируйте новую пару ключей SSH

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

 ls ~/.ssh/id_*
 /home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

Скопировать открытый ключ на сервер

Теперь, когда вы сгенерировали пару ключей SSH, следующим шагом будет копирование открытого ключа на сервер, которым вы хотите управлять.

Самый простой и рекомендуемый способ скопировать ваш открытый ключ на сервер — использовать утилиту ssh-copy-id . В терминале локального компьютера введите:

 ssh-copy-id remote_username@server_ip_address

Вам будет предложено ввести пароль remote_username :

 remote_username@server_ip_address's password:

После аутентификации пользователя открытый ключ ~/.ssh/id_rsa.pub будет добавлен к файлу удаленного пользователя ~/.ssh/authorized_keys , и соединение будет закрыто.

 Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@server_ip_address'" and check to make sure that only the key(s) you wanted were added.

Если по какой-то причине утилита ssh-copy-id недоступна на вашем локальном компьютере, вы можете использовать следующую команду для копирования открытого ключа:

 cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

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

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

Чтобы проверить это, попробуйте войти на свой сервер через SSH:

 ssh remote_username@server_ip_address

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

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

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

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

Войдите на удаленный сервер:

 ssh sudo_user@server_ip_address

Откройте файл конфигурации SSH /etc/ssh/sshd_config с помощью текстового редактора :

 sudo nano /etc/ssh/sshd_config

Найдите следующие директивы и измените их следующим образом:

/etc/ssh/sshd_config

 PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

После завершения сохраните файл и перезапустите службу SSH, введя:

 sudo systemctl restart ssh

На этом этапе аутентификация по паролю отключается.

Заключение

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

По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию снижает риск автоматизированных атак.

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

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

Безопасность Ubuntu SSH Не используете Ubuntu 18.04?
Выберите другую ОС:
центос 7 центос 8 дебиан 10 дебиан 9

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *