Telegram Group & Telegram Channel
#продолжи_мысль_SE

Зачем админ просит публичный ключ. Или что происходит при подключении к серверу по SSH

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

А зачем вообще нужен этот ключ и что происходит, когда мы пытаемся подключиться к серверу по SSH? Давайте разберемся (без захода в дебри).

Публичный и приватный ключ

Публичный ключ SSH (пример: user_rsa.pub) всегда существует в паре с приватным ключом, который носит такое же название, но не имеет расширения .pub (для нашего примера — user_rsa). Без приватного ключа публичный будет бесполезным.
И здесь важно запомнить: никому не передавайте свой приватный ключ. А публичный можете отправлять по запросу без проблем.

Зачем админу ваш публичный ключ

После получения публичного ключа админ помещает его в файл ~/.ssh/authorized_keys на сервере. И после этого вы можете подключаться к серверу по SSH.

А подключение происходит так (при условии, что оно не первое, про особенности первого — ниже):

1. Вы вводите в консоли команду для подключения к серверу (например, ssh [email protected]).
2. Сервер находит ваш публичный ключ в ~/.ssh/authorized_keys.
3. Сервер генерирует число, шифрует его с использованием вашего публичного ключа (генерирует challenge) и отправляет challenge в ответ вашему компьютеру.
4. Установленный на вашем компьютере SSH-агент расшифровывает с его помощью приватного ключа полученный challenge. Затем он создает подпись (которая содержит хеш от расшифрованного числа и данные сессии) и отправляет ее серверу.
5. Получив подпись, сервер сверяет ее с подписью, вычисленной локально с помощью публичного ключа (она тоже содержит хеш от числа и данные сессии).
6. Если подписи совпали, сервер разрешает доступ.

Этот процесс описан на диаграмме, прикрепленной к посту.

Если вы подключаетесь к серверу впервые

В этом случае после ввода в консоли команды для подключения к серверу и отправки запроса, сервер предъявляет в ответ свой публичный ключ (fingerprint). Получив его, компьютер спрашивает, добавить ли в доверенные. При положительном ответе fingerprint сервера добавляется в known_hosts на вашем компьютере. И теперь все работает, как описано выше (при запросе подключения к серверу он предъявляет свой fingerprint, чтобы подтвердить, что это реально он).

Почему публичный ключ, а не логин и пароль

Вариант с публичным ключом считается более безопасным.
При использовании логина и пароля последний передается по сети. А значит, есть вероятность его компрометации в случае перехвата злоумышленниками. Конечно, полностью отказываться от этого способа не стоит. Если вы, к примеру, работаете в приватной сети, изолированной от внешнего мира, логин и пароль — вполне ОК. Если же вы подключаетесь к серверу через публичную сеть, использование публичного и приватного ключей — must have.

Можно ли расшифровать число, отправляемое сервером с помощью публичного ключа

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

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

Участвую в конкурсе «Продолжи мысль» от @systems_education
2🔥12👍9🤝7



group-telegram.com/pro_techwriting/137
Create:
Last Update:

#продолжи_мысль_SE

Зачем админ просит публичный ключ. Или что происходит при подключении к серверу по SSH

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

А зачем вообще нужен этот ключ и что происходит, когда мы пытаемся подключиться к серверу по SSH? Давайте разберемся (без захода в дебри).

Публичный и приватный ключ

Публичный ключ SSH (пример: user_rsa.pub) всегда существует в паре с приватным ключом, который носит такое же название, но не имеет расширения .pub (для нашего примера — user_rsa). Без приватного ключа публичный будет бесполезным.
И здесь важно запомнить: никому не передавайте свой приватный ключ. А публичный можете отправлять по запросу без проблем.

Зачем админу ваш публичный ключ

После получения публичного ключа админ помещает его в файл ~/.ssh/authorized_keys на сервере. И после этого вы можете подключаться к серверу по SSH.

А подключение происходит так (при условии, что оно не первое, про особенности первого — ниже):

1. Вы вводите в консоли команду для подключения к серверу (например, ssh [email protected]).
2. Сервер находит ваш публичный ключ в ~/.ssh/authorized_keys.
3. Сервер генерирует число, шифрует его с использованием вашего публичного ключа (генерирует challenge) и отправляет challenge в ответ вашему компьютеру.
4. Установленный на вашем компьютере SSH-агент расшифровывает с его помощью приватного ключа полученный challenge. Затем он создает подпись (которая содержит хеш от расшифрованного числа и данные сессии) и отправляет ее серверу.
5. Получив подпись, сервер сверяет ее с подписью, вычисленной локально с помощью публичного ключа (она тоже содержит хеш от числа и данные сессии).
6. Если подписи совпали, сервер разрешает доступ.

Этот процесс описан на диаграмме, прикрепленной к посту.

Если вы подключаетесь к серверу впервые

В этом случае после ввода в консоли команды для подключения к серверу и отправки запроса, сервер предъявляет в ответ свой публичный ключ (fingerprint). Получив его, компьютер спрашивает, добавить ли в доверенные. При положительном ответе fingerprint сервера добавляется в known_hosts на вашем компьютере. И теперь все работает, как описано выше (при запросе подключения к серверу он предъявляет свой fingerprint, чтобы подтвердить, что это реально он).

Почему публичный ключ, а не логин и пароль

Вариант с публичным ключом считается более безопасным.
При использовании логина и пароля последний передается по сети. А значит, есть вероятность его компрометации в случае перехвата злоумышленниками. Конечно, полностью отказываться от этого способа не стоит. Если вы, к примеру, работаете в приватной сети, изолированной от внешнего мира, логин и пароль — вполне ОК. Если же вы подключаетесь к серверу через публичную сеть, использование публичного и приватного ключей — must have.

Можно ли расшифровать число, отправляемое сервером с помощью публичного ключа

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

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

Участвую в конкурсе «Продолжи мысль» от @systems_education

BY PRO_техписательство




Share with your friend now:
group-telegram.com/pro_techwriting/137

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

If you initiate a Secret Chat, however, then these communications are end-to-end encrypted and are tied to the device you are using. That means it’s less convenient to access them across multiple platforms, but you are at far less risk of snooping. Back in the day, Secret Chats received some praise from the EFF, but the fact that its standard system isn’t as secure earned it some criticism. If you’re looking for something that is considered more reliable by privacy advocates, then Signal is the EFF’s preferred platform, although that too is not without some caveats. In 2018, Russia banned Telegram although it reversed the prohibition two years later. That hurt tech stocks. For the past few weeks, the 10-year yield has traded between 1.72% and 2%, as traders moved into the bond for safety when Russia headlines were ugly—and out of it when headlines improved. Now, the yield is touching its pandemic-era high. If the yield breaks above that level, that could signal that it’s on a sustainable path higher. Higher long-dated bond yields make future profits less valuable—and many tech companies are valued on the basis of profits forecast for many years in the future. In this regard, Sebi collaborated with the Telecom Regulatory Authority of India (TRAI) to reduce the vulnerability of the securities market to manipulation through misuse of mass communication medium like bulk SMS. In February 2014, the Ukrainian people ousted pro-Russian president Viktor Yanukovych, prompting Russia to invade and annex the Crimean peninsula. By the start of April, Pavel Durov had given his notice, with TechCrunch saying at the time that the CEO had resisted pressure to suppress pages criticizing the Russian government.
from us


Telegram PRO_техписательство
FROM American