Как настроить ключи SSH в Debian 10

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

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

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

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

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

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

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

Выполните следующую команду ls , чтобы проверить наличие ключевых файлов:

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

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

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

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

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

Источник

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

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