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

How to Set Up SSH Keys on Ubuntu 18.04

8 Января 2021 | Ubuntu

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

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

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

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

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

Перед созданием новой пары ключей SSH сначала проверьте наличие существующих ключей SSH на вашем клиентском компьютере Ubuntu. Вы можете сделать это, выполнив следующую команду ls :

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

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

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

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

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 создана, введите:
 

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 .

    Комментарии

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

Загрузка комментариев...