Что такое ключи SSH? — Ключи безопасной оболочки — JumpCloud

Проведите достаточно времени в ИТ-среде, и вы, скорее всего, встретите термин «ключи SSH». Если вы уже сталкивались с этим термином, связанным с ИТ, то, возможно, задаетесь вопросом, что такое ключи SSH? Ключи SSH (Secure Shell) — это учетные данные для доступа, которые используются в протоколе SSH.

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

Прежде чем этот пост углубится в объяснение того, что такое ключи SSH, давайте кратко рассмотрим протокол SSH.

Безопасная удаленная работа

Вебинар по запросу — получить реальные советы по модернизации вашего технологического стека и повышению удаленной безопасности от бывшего ИТ-директора General Electric и аналитика RedMonk.

Смотреть сегодня

Протокол SSH

Первая версия протокола SSH была разработана в Лето 1995 года от Тату Илонен. Тату был исследователем в Университете Хельсинки, когда в университетской сети была обнаружена атака сниффинга. Атака сниффинга перехватывает и регистрирует трафик, который происходит в сети, и может предоставить злоумышленникам имена пользователей и пароли, которые затем могут быть использованы для получения доступа к критически важным ИТ-активам. Были затронуты тысячи учетных записей, в том числе принадлежащих общественным партнерствам. Эта атака сниффинга побудила «Тату» выяснить, как сделать сети более безопасными, и в конечном итоге это привело к созданию протокола SSH (SSH.com).

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

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

Что такое ключи SSH?

Ключи SSH бывают разных размеров, но популярным выбором является 2048-битное шифрование RSA, что сопоставимо с паролем длиной 617 цифр. В системах Windows можно создать свою собственную пару ключей SSH, загрузив и используя клиент SSH, например PuTTY. В системах Mac® и Linux® можно сгенерировать пару ключей SSH с помощью окна терминала. Посмотрите видео ниже, чтобы узнать, как сгенерировать свою собственную пару ключей RSA на Mac и Linux.

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

Теперь давайте подробнее рассмотрим, как работают закрытый и открытый ключи. Чтобы упростить задачу, мы сосредоточимся на том, как работают пользовательские ключи.

Как работают пользовательские ключи

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

Использование ключей SSH

Первые шаги

Прежде чем вы сможете начать использовать ключи SSH, сначала вам нужно сгенерировать свою собственную пару ключей SSH в системе, которую вы хотите использовать для доступа к удаленной системе. Эта статья и упомянутое выше видео — отличные ресурсы, которые расскажут, как сгенерировать пару ключей SSH. Следующим шагом после создания пары ключей является размещение открытого SSH-ключа на удаленном сервере. В зависимости от ваших настроек это можно сделать, введя пару команд в окне терминала, используя JumpCloud, или вручную разместив открытый ключ SSH на удаленном сервере (DigitalOcean).

За кулисами аутентификации SSH-ключа

После выполнения шагов, упомянутых выше, используйте свой терминал, чтобы ввести свое имя пользователя ssh и IP-адрес удаленной системы в этот формат: ssh username @ my_ip_address. Это инициирует соединение с удаленной системой по протоколу SSH. Затем протокол и указанное имя пользователя сообщат удаленному серверу, какой открытый ключ использовать для вашей аутентификации. Затем удаленный сервер будет использовать этот открытый ключ для шифрования случайного сообщения с вызовом, которое отправляется обратно клиенту. Это сообщение с вызовом расшифровывается с помощью закрытого ключа в вашей системе. После того, как сообщение расшифровано, оно объединяется с ранее заданным идентификатором сеанса и затем отправляется обратно на сервер. Если сообщение совпадает с тем, что отправил сервер, клиент аутентифицируется, и вы получите доступ к удаленному серверу. Этот процесс доказывает серверу, что у вас есть соответствующий закрытый ключ для открытого ключа, который он хранит.

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

Управление ключами SSH

Крайне важно иметь надлежащее управление ключами SSH, потому что они часто предоставляют доступ к критически важным цифровые активы. Кроме того, компании, как правило, имеют много ключей SSH. Фактически, компании из списка Fortune 500 часто имеют несколько миллионов из них. Несмотря на сложность попытки вручную управлять миллионами ключей SSH, наличие системы управления ключами SSH постоянно игнорируется. SSH.com немного покопался и обнаружил компанию, у которой было 3 миллиона ключей SSH, «предоставляющих доступ к действующим производственным серверам. Из них 90% больше не использовались. Доступ с правами root был предоставлен 10% ключей »(SSH.com). Действующая эффективная система управления ключами SSH значительно снизила бы риск для безопасности.

У ИТ-специалистов есть несколько способов получить контроль над ключами SSH в своей среде. Один из них включает использование инструмента управления ключами SSH. Однако это означает необходимость управления еще одной платформой в дополнение к управлению поставщиком единого входа, службой каталогов и, возможно, решением для управления системой. Появилось новое решение, которое предоставляет ИТ-специалистам второй вариант: Directory-as-a-Service®.

Cloud IAM предлагает управление ключами SSH

Это облачное решение для управления идентификацией и доступом (IAM) предоставляет ИТ-специалистам единое центральное место для управления ключами SSH. Кроме того, ИТ-отдел также может централизовать аутентификацию пользователей в системах Mac, Linux и Windows, облачных серверах, проводных и Wi-Fi сетях, веб-приложениях и локальных приложениях, а также виртуальных и локальных хранилищах. Имея единое централизованное место для управления аутентификацией пользователей для всех их ресурсов, можно всего за несколько щелчков мыши отключить пользователей от всех их ресурсов, включая доступ по SSH-ключу к удаленным системам.

Подробнее об управлении ключами SSH с помощью JumpCloud

Для получения дополнительной информации рассмотрите эту статью поддержки о том, как JumpCloud помогает в управлении ключами SSH, или изучите это руководство для современный подход к управлению учетными записями пользователей на ваших облачных серверах.
Вы также можете обратиться к нам, если вам нужна дополнительная информация о том, как DaaS может упростить управление ключами SSH. Если вы готовы начать тестирование нашей современной платформы IAM, зарегистрируйтесь для получения бесплатной учетной записи. Вы сможете изучить все наши функции, а ваши первые десять пользователей навсегда останутся бесплатными.



Полное руководство по SSH — Настройка ключей SSH

Добро пожаловать в наше полное руководство по настройке ключей SSH (Secure Shell). В этом руководстве вы познакомитесь с основами создания ключей SSH, а также с тем, как управлять несколькими ключами и парами ключей.

Создание новой пары ключей SSH

Откройте терминал и выполните следующую команду:

  ssh-keygen  

Вы увидите следующий текст:

  Создание пары открытого/закрытого ключей RSA. Введите файл, в котором будет сохранен ключ (/home/username/. ssh/id_rsa):  

Нажмите Enter, чтобы сохранить ключи в каталоге по умолчанию /home/username/.ssh .

Затем вам будет предложено ввести пароль:

  Введите кодовую фразу (пусто, если кодовая фраза отсутствует):  

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

После ввода и подтверждения пароля вы увидите следующее:

  Ваш идентификатор был сохранен в/home/username/.ssh/id_rsa. Ваш открытый ключ был сохранен в/home/username/.ssh/id_rsa.  pub. Отпечаток ключа: SHA256:/qRoWhRcIBTw0D4KpTUyK6YepyL6RQ2CQrtWsaicCb4 имя пользователя @ 871e129f767b Случайное изображение ключа: + --- [RSA 2048] ---- + |  .o = + .... || +. * o + o.  || + X. = o o || @. =. Oo.  || = O ... o S || o.oo.  .  || .E +.  .  .  .  || оо.  ... + || = .. .o.  .  .  | + ---- [SHA256] ----- +  

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

Управление несколькими ключами SSH

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

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

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

SSH config

Введите SSH config , который является файл конфигурации для каждого пользователя для связи по SSH. Создайте новый файл: ~/.ssh/config и откройте его для редактирования:

  nano ~/.ssh/config  

Управление настраиваемым именованным SSH-ключом

Первое, что мы собираемся решить с помощью этого файла config , — избежать необходимости добавить ключи SSH с настраиваемыми именами, используя ssh-add . Предполагая, что ваш закрытый SSH-ключ называется ~/.ssh/id_rsa , добавьте в файл config следующее:

  Хост github.com Имя хоста github.com Пользователь git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes  

Затем убедитесь, что ~/. ssh/id_rsa отсутствует в ssh-agent , открыв другой терминал и запустив следующую команду:

  ssh-add -  D  

Эта команда удалит все ключи из текущего активного сеанса ssh-agent .

Теперь, если вы попробуете закрывая репозиторий GitHub, ваш файл config будет использовать ключ в ~/.ssh/ida_rsa .

Вот некоторые другие полезные примеры конфигурации:

  Хост bitbucket-enterprise Имя хоста bitbucket.org Пользователь git IdentityFile ~/.ssh/id_rsa_corp IdentitiesOnly yes  

Теперь вы можете использовать git clone git @ bitbucket-enterprise: company/project.git

  Host bitbucket-personal HostName bitbucket.org User  git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes  

Теперь вы можете использовать git clone git @ bitbucket-personal: username/other-pi-project.git

  Хост myserver Имя хоста ssh.username.com Порт 1111 IdentityFile ~/.ss  h/id_rsa_personal IdentitiesOnly yes Имя пользователя IdentitiesOnly yes  

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

Управление паролями

Последний фрагмент головоломки — управление паролями. Ввод пароля каждый раз при инициализации SSH-соединения может быть очень утомительным. Чтобы обойти это, мы можем использовать программное обеспечение для управления паролями, которое поставляется с macOS и различными дистрибутивами Linux.

В этом руководстве мы будем использовать программу MacOS Keychain Access. Начните с добавления ключа в Связку ключей, передав параметр -K команде ssh-add :

  ssh-add -K ~/.ssh/id_rsa_whatever  

Теперь вы можете увидеть свой SSH-ключ в Keychain Access:

Но если вы удалите ключи из ssh-agent с помощью ssh-add -D или перезагрузите компьютер, вам снова будет предложено ввести пароль при попытке использовать SSH. Оказывается, нужно перепрыгнуть еще через один обруч. Откройте файл SSH config , запустив nano ~/.ssh/config и добавьте следующее:

  Host * AddKeysToAgent да UseKeychain да  

При этом всякий раз, когда вы запускаете ssh , он будет искать ключи в Keychain Access. Если он его найдет, вам больше не будет предлагаться ввести пароль. Ключи также будут автоматически добавляться в ssh-agent каждый раз при перезагрузке компьютера.

Теперь, когда вы знаете основы создания новых ключей SSH и управления несколькими ключами , выйдите и ssh сколько душе угодно!


Если эта статья была полезной, напишите ее в Твиттере.

Научитесь программировать бесплатно. Учебная программа с открытым исходным кодом freeCodeCamp помогла более 40 000 человек получить работу в качестве разработчиков. Начать

Оцените статью
logicle.ru
Добавить комментарий