Как пройти аутентификацию по SSH с помощью ключей вместо паролей

Как пройти аутентификацию по SSH с ключами вместо ключа паролейSSH — отличный способ получить удаленный доступ к вашему компьютеру. Подобно FTP, вы можете подключиться через SSH FTP

получить безопасный доступ к файловому серверу с вашим любимым FTP-клиентом

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

Когда вы открываете порты

на вашем маршрутизаторе (точнее, на порту 22) вы можете получить доступ не только к вашему SSH-серверу из локальной сети, но и из любой точки мира.

Однако вы не хотите рисковать, используя слабый пароль для аутентификации. Если кто-либо получает доступ к вашему компьютеру через SSH, он получает полный доступ к оболочке. Просто чтобы быть ясно, это не то, что мы хотим. К счастью, очень легко настроить глобальный SSH-сервер очень безопасным способом, используя аутентификацию на основе ключей и отключив аутентификацию по паролю на вашем сервере.

Это для меня?

Соблазнительно расслабляться в личной безопасности. Если вы используете сервер для личных целей, вы можете подумать, что люди просто не знают о вашем сервере и, следовательно, не будут пытаться взломать его — безопасность через неизвестность. Это было бы очень неправильным предположением. Поскольку (по большей части) трафик SSH передается через порт 22, злоумышленники регулярно проверяют видимость порта 22 на случайных IP-адресах, после чего следует атака методом перебора. Это один из способов создания ботнетов для использования в DDOS-атаках.

,

Короче говоря: если вы транслируете свой SSH-сервер через Интернет (то есть переадресовываете порт 22), тогда да, это для вас.

Идея SSH-логинов на основе ключей

Основанные на ключах логины SSH основаны на идее криптографии с открытым ключом. Нам бы слишком далеко, чтобы объяснить сложности, но мы попытаемся нарисовать простую картину того, что происходит за кулисами.

В процессе ниже, ваш клиентский компьютер генерирует два ключа: открытый ключ и закрытый ключ. Общая идея заключается в том, что вы можете зашифровать данные с помощью открытого ключа, но только расшифровать их с помощью закрытого ключа. Мы поместим открытый ключ на сервер и попросим его зашифровать все исходящие соединения с ним. Это гарантирует, что только те клиенты с закрытым ключом могут расшифровать и прочитать данные.

1. Установите OpenSSH

Во-первых, мы собираемся настроить SSH-сервер с использованием OpenSSH. Если у вас уже работает SSH-сервер и вы просто хотите узнать, как настроить аутентификацию на основе ключей, вы можете пропустить этот шаг. Используйте ваш любимый менеджер пакетов для установки приложения сервера OpenSSH. Самый простой способ все еще может быть запустить APT-получить Команда из Терминала.

sudo apt-get установить openssh-сервер

Введите свой пароль, подтвердите и подождите минуту, чтобы он закончил установку. Поздравляем, теперь у вас есть SSH-сервер. (Это было просто!)

убунту установить OpenSSH-

Вы можете использовать приложение как есть или отредактировать / И т.д. / SSH / sshd_config настроить это. Запустить man sshd_config Команда в Терминале, чтобы получить больше информации. Еще один замечательный ресурс, чтобы узнать больше об OpenSSH — это соответствующая страница справки Ubuntu.

2. Генерация ключей

Мы сгенерируем набор ключей. Запустите следующие команды (адаптировано со страницы справки OpenSSH / Keys Ubuntu).

mkdir ~ / .ssh
chmod 700 ~ / .ssh
ssh-keygen -t rsa

Первая команда создает скрытый каталог «.ssh» в вашей домашней папке, вторая команда изменяет права доступа к папке, в то время как третья команда фактически генерирует набор ключей RSA. Сначала вас попросят указать место для сохранения ключей (оставьте поле пустым и нажмите клавишу ввода, чтобы сохранить его в месте по умолчанию), а затем укажите пароль.

RSA-ключ-поколение-Mac

Эта парольная фраза дополнительно шифрует закрытый ключ, хранящийся на вашем компьютере, что дает вам больше времени для защиты SSH-сервера в случае кражи вашего личного ключа. Убедитесь, что вы выбрали парольную фразу, которую сможете запомнить, так как вам придется вводить ее, когда вы пытаетесь использовать свой ключ.

3. Передача открытого ключа

Затем вам нужно перенести открытый ключ, сгенерированный на предыдущем шаге, на компьютер SSH-сервера. Если ваша клиентская машина также работает под управлением Linux, это может быть легко достигнуто с помощью следующей команды (подстановка имени пользователя и IP-адреса на вашем SSH-сервере).

SSH-копия-идентификатор @

Если ваш клиент не поддерживает команду ssh-copy-id, вы можете использовать приведенную ниже команду. Это немного более запутанно, но по существу достигает тех же результатов.

cat ~ / .ssh / id_rsa.pub | SSH @ "mkdir ~ / .ssh; cat >> ~ / .ssh / authorized_keys"

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

4. Отключите аутентификацию по паролю

Обратите внимание, что ваша система по-прежнему не является более безопасной, чем после первого шага. Хотя по крайней мере один клиент настроен на использование аутентификации на основе ключей, это все равно оставляет место для подключения других клиентов с паролем. В завершение мы полностью отключим аутентификацию по паролю. После этого шага к вашему SSH-серверу могут подключаться только компьютеры, которые прошли описанный выше процесс.

Чтобы отключить аутентификацию по паролю, отредактируйте / И т.д. / SSH / sshd_config файл в вашем любимом редакторе. Один из самых простых способов редактирования файла с ограниченным доступом, опять же, с помощью терминала. (Я неравнодушен к нано, но вы можете использовать все, что вам наиболее удобно.)

sudo nano / etc / ssh / sshd_config

Около 40 строк в нижней части файла, вы найдете

#PasswordAuthentication yes

Удалите знак числа (#) и измените настройку на «нет», как показано ниже.

ПарольАутентификация нет

Конечный файл должен выглядеть примерно так:

sshd_config

Сохраните файл, нажав CTRL + X. Подтвердите редактирование и имя файла, и вы почти закончили. Просто перезапустите сервер SSH, чтобы запустить его с этими новыми настройками.

sudo перезапустить ssh

Вы также заметите, что ваш клиент перестанет запрашивать парольную фразу для расшифровки вашего ключа, если на сервере отключена аутентификация по паролю. Теперь, когда у вас есть безопасный SSH-сервер, как вы собираетесь его использовать? В качестве безопасного файлового сервера, удаленной оболочки или для пересылки других сервисов по SSH? Дайте нам знать в комментариях ниже!

Изображение предоставлено: Shutterstock

Ссылка на основную публикацию
Adblock
detector