ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

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

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

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

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

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

 

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

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

Выполните следующую команду 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 ключи в Debian 10

 

Чтобы убедиться, что пара ключей 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.

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

Exit mobile version