Рекламное объявление

Как аутентифицироваться по SSH с помощью ключей вместо ключа паролейSSH - отличный способ получить удаленный доступ к вашему компьютеру. Подобно FTP, вы можете подключаться через SSH FTP Что такое SSH и чем он отличается от FTP [с объяснением технологии] Подробнее чтобы получить безопасный доступ к файловому серверу с вашим любимым FTP-клиент Управляйте передачей файлов по FTP на всех своих сайтах с FileZillaУ большого количества старых FTP-клиентов возникали проблемы при передаче больших файлов. Приложения испытали обычные таймауты, которые можно было бы ожидать, когда компьютер простаивает от 15 до ... Подробнее , быстрый доступ к удаленным файлам или даже подключение сетевого диска к компьютеру. Но SSH - это не только удаленный доступ к файлам. Вход через SSH в Терминале (или с помощью PuTTY в Windows) дает вам удаленный доступ к оболочке (в конце концов, SSH - сокращение от Secure SHell). Вот как я управляю своим медиа-сервером на расстоянии.

Когда ты открыть порты Что такое перенаправление портов и как оно мне может помочь? [MakeUseOf Explains]

instagram viewer
Вы немного плачете, когда кто-то говорит вам, что у вас проблема с переадресацией портов, и поэтому ваше блестящее новое приложение не работает? Ваш Xbox не позволяет вам играть в игры, ваши торрент-загрузки запрещены ... Подробнее на вашем маршрутизаторе (точнее, порт 22) вы можете получить доступ к своему SSH-серверу не только из локальной сети, но и из любой точки мира.

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

Это для меня?

Заманчиво ослабить личную безопасность. Если вы используете сервер в личных целях, вы можете подумать, что люди просто не знают о вашем сервере и, следовательно, не будут пытаться его взломать - безопасность через безвестность. Это было бы очень неверное предположение. Поскольку (большая часть) трафика SSH передается через порт 22, злоумышленники обычно проверяют видимость порта 22 на случайных IP-адресах, после чего проводят атаку методом грубой силы. Это один из способов использования ботнетов в DDOS атаки Что такое DDoS-атака? [MakeUseOf Explains]Термин DDoS всплывает всякий раз, когда киберактивизм массово поднимает голову. Подобные атаки попадают в заголовки газет по многим причинам. Проблемы, которые запускают эти DDoS-атаки, часто являются противоречивыми или очень ... Подробнее .

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

Идея SSH-входа на основе ключа

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

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

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

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

sudo apt-get install openssh-server

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

убунту-установка-openssh

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

2. Сгенерировать ключи

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

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

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

rsa-key-generation-mac

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

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

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

ssh-copy-id @

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

кот ~ / .ssh / id_rsa.pub | ssh @ "mkdir ~ / .ssh; cat >> ~ / .ssh / authorized_keys "

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

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

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

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

sudo nano / etc / ssh / sshd_config

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

#PasswordAuthentication да

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

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

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

sshd_config

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

sudo перезапуск ssh

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

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

Я писатель и студент компьютерных наук из Бельгии. Вы всегда можете оказать мне услугу, предложив хорошую статью, рекомендацию книги или идею рецепта.