Как настроить ключи 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, вы можете либо использовать их, либо сделать резервную копию старых ключей и сгенерировать новые.

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

ssh-keygen -t rsa -b 4096 -C "[email protected]"

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

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

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

Затем вам будет предложено ввести безопасную парольную фразу. Если вы хотите использовать кодовую фразу, решать вам. Кодовая фраза добавляет дополнительный уровень безопасности.

Enter passphrase (empty for no passphrase):

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

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

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

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

Оставьте комментарий