Secure Shell (SSH) — это криптографический сетевой протокол, используемый для безопасного соединения между клиентом и сервером и поддерживающий различные механизмы аутентификации.
Двумя наиболее популярными механизмами являются аутентификация на основе паролей и аутентификация на основе открытого ключа. Использование ключей SSH более безопасно и удобно, чем традиционная аутентификация по паролю.
В этом руководстве вы узнаете, как генерировать SSH-ключи на Ubuntu, как настроить аутентификацию на основе ключа 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 сгенерирована, введите:
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
файлу удаленного пользователя, и соединение будет закрыто.
Если по какой-либо причине ssh-copy-id
утилита недоступна на вашем локальном компьютере, вы можете использовать следующую команду для копирования открытого ключа:
cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod
Войдите на свой сервер, используя ключи 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. Вы можете добавить один и тот же ключ на несколько удаленных серверов.
0 комментариев