В этой статье Вы узнаете, как использование ключей SSH поможет Вам защититься от хакеров и в целом повысить безопасность Ваших данных. Кроме того, у ключей SSH есть множество интересных особенностей. Ниже мы расскажем о том, как правильно их применять и настраивать.
Содержание:
- Использование ключей SSH
- Создание пары RSA-ключей
- Установка ключевой фразы
- Копирование ключа
- Отключение доступа по паролю для пользователя root
- Бонус для пользователей Windows
- Выводы
Использование ключей SSH
Использование ключей SSH более безопасно, чем применение традиционного доступа с помощью логина и пароля. Обычный пароль можно подобрать при помощи атаки грубой силы, а ключи SSH подобрать практически невозможно.
Начнем с теории. Ключи SSH представляют собой учетные данные, обеспечивающие доступ по протоколу Secure Shell (SSH). Этот протокол предоставляет зашифрованную безопасную связь между системами, которые находятся в открытой сети. Чаще всего протокол SSH используют для дистанционного доступа к ОС, передачи данных и управления сетью.
Для установки безопасной связи протокол SSH использует ключи. В процессе генерации пары ключей Вы получаете две длинные строки символов: открытый и закрытый ключи. Если говорить упрощенно, открытый ключ представляет собой некий замок, на который можно запереть данные, тогда как закрытый ключ его открывает. Например, Вы можете разместить открытый ключ на сервере, а потом подключиться к нему и залогиниться в системе с помощью закрытого ключа. Таким образом Вам не придется вводить пароль для доступа к системе.
Для генерирования ключей SSH используются криптографические алгоритмы с открытым ключом (чаще всего — RSA и DSA). Интересно, что помощью закрытого ключа можно получить открытый, но не наоборот.
Важно: Вы можете повысить безопасность закрытого ключа, использовав ключевую фразу.
Создание пары RSA-ключей
Итак, приступим. Сперва создаем пару ключей на клиентской машине. Желательно, чтобы это был Ваш компьютер. Для генерации ключей вводим команду:
В более новых системах можно использовать следующую команду:
Когда Вы введете команду для генерации пары ключей, система задаст Вам несколько вопросов. Для начала необходимо ввести имя файла, в который Вы хотите сохранить ключи:
Установка ключевой фразы
Подумайте, хотите ли Вы использовать ключевую фразу. Её использование даёт преимущество — существенно повышает безопасность ключа, независимо от метода шифрования. Задать ключевую фразу можно так:
Также, ключевая фраза защитит Ваш закрытый ключ, если он попадёт к неавторизированному пользователю. Такой пользователь не сможет получить доступ к системе, пока не введёт правильную ключевую фразу. Как результат — для взлома системы понадобится намного больше времени.
Но есть и один недостаток использования ключевой фразы: ее необходимо вводить каждый раз при входе в систему.
В нашем примере открытый ключ хранится по адресу /home/demo/.ssh/id_rsa.pub
. Закрытый ключ хранится по адресу /home/demo/.ssh/id_rsa
.
Копирование ключа
Когда ключи сгенерированы, пора разместить открытый ключ на сервере, при подключении к которому мы хотим его использовать. Вы можете скопировать открытый ключ на новый компьютер, используя команду ssh-copy-id
:
Важно: не забудьте изменить имя пользователя и пароль на Ваши.
Пример вывода:
Таким образом, теперь Вы можете залогиниться, используя команду ssh [email protected]
. При этом система не будет запрашивать у Вас пароль. Однако, если Вы установили ключевую фразу, то нужно будет ее ввести (помним, что ее необходимо будет вводить каждый раз при входе в систему).
Если у Вас новый дистрибутив Linux, и ключи RSA не принимает система, то можно включить поддержку, добавив следующие опции в файл конфигурации /etc/ssh/sshd_config
После этого необходимо перезапустить службу OpenSSH:
Отключение доступа по паролю для пользователя root
Когда Вы уже скопировали Ваши ключи на сервер и убедились, что можете с их помощью залогиниться в системе, можно пойти дальше и отключить доступ по паролю для пользователя root.
Для того чтобы сделать это, откройте файл конфигурации SSH-сервера при помощи команды:
Найдите в этом файле строчку PermitRootLogin и приведите ее к следующему виду, чтобы пользователь root мог логиниться по ключу:
Сохраните изменения и перезапустите службу SSH для того, чтобы изменения вступили в силу при помощи команды:
Бонус для пользователей Windows
Чтобы подключаться к серверу с компьютеров под управлением Windows, используйте PuTTy. В программе нужно зайти в раздел Connection -> SSH -> Auth и выбрать Ваш закрытый ключ, как показано на скриншоте.
Выводы
Таким образом Вы познакомились с ключами SSH и научились с их помощью защищать Ваши данные. Надеемся, что Вы смогли получить новый полезный навык, а значит теперь не станете жертвой хакеров.
Спасибо за время, уделенное на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
4 комментария. Оставить новый
Есть какой-то вариант подключения по ключу не через putty, а например через windows terminal или через обычный cmd ?
Не нагуглил ответ на свой вопрос… Позвольте задать его здесь.
Подскажите как настроить Windows Terminal чтобы при подключении например к убунте по ssh key запрашивался прежде ввод логина? сейчас авторизуется сразу без запроса. Например в putty запрос логина есть. В Windows Termina — нет. Может кто знает как настроить такое поведение?
Имя пользователя указываете через собаку: [email protected], если через собаку не указывать, то подставляется имя того пользователя под который вы вошли в систему. Отпишите пожалуйста получилось или нет.
Константин, дело в том что как раз хотелось бы не указывать в профиле подключения логин явно. Это, как я думаю, и есть некая защита «»от дурака». Человек который не знает логина, не сможет воспользоваться, моим компом и не сможет зайти на сервер, даже если настроена авторизация по ключам. Т.е. хотелось бы получить такое же поведение как в putty. Нажимаешь на профиль подключение, затем тебе выдается запрос на ввод логина.