TLTR (Too Long Too Read)
G3t $t@rt3d W!th $$H (Начать работу с SSH)
Сегодня, когда конфиденциальность настолько важна, наличие сквозного шифрования просто ОБЯЗАТЕЛЬНО.
Поэтому перед тем, как мы начнем, просто сделаем краткий обзор. Эта статья в блоге предназначена для тех, кто интересуется шифрованием, и кому это было интересно. Эта документация также была сделана для того, чтобы помочь мне понять, как зашифровать мое соединение между Github и моей рабочей станцией (компьютером), не раскрывая при этом мои соединения, данные — информацию (личную или деловую, публичную или частную) внешнему миру. Сюда также относятся любые изображения, видео, медиафайлы из зашифрованных соединений.
Вопросы и ответы по базовым знаниям, которые задают большинство.
- Что такое SHA256?
- Шифрование SSH?
Шифрование SSH
Secure Shell Hash Protocol (SSH) — это криптографический сетевой протокол для безопасной работы сетевых служб через незащищенную сеть. Это протокол сетевого взаимодействия, который позволяет двум компьютерам, мобильным телефонам и т.д. общаться и обмениваться данными через Интернет или между устройствами или оборудованием.
Предназначен для соединения этих устройств без возможности подслушивания коммуникаций между двумя устройствами, подключенными друг к другу. Также известен как «человек посередине». Именно так осуществляются атаки типа «человек посередине». Подробнее об этом позже.
SHA256
«Алгоритм SHA-256» SHA означает Secure Hash Algorithm. Значение цифры 256 в названии означает, что хэш-значение всегда будет равняться 256 битам. Не углубляясь слишком глубоко в тему, не стесняйтесь прокрутить страницу вниз и посмотреть сайты, на которые я ссылался, для получения дополнительной информации.
Это сегодняшний отраслевой стандарт для шифрования данных между клиентами и серверами, одноранговыми, сквозными приложениями и приложениями для телефонов. И является обязательным условием для любого реального проекта, который связан с частной информацией других людей.
Некоторые из отличительных особенностей алгоритма SHA следующие:
Длина сообщения:
Длина чистого текста должна быть менее 264 бит. Размер должен находиться в области сравнения, чтобы дайджест был как можно более случайным.
Длина дайджеста:
Длина хэш-дайджеста должна составлять 256 бит в алгоритме SHA 256, 512 бит в SHA-512 и так далее. Более длинные дайджесты обычно предполагают значительно большее количество вычислений ценой снижения скорости и экономии места.
Необратимость:
По своей конструкции все хэш-функции, такие как SHA 256, необратимы. Вы не должны ни получить открытый текст, имея предварительно дайджест, ни получить исходное значение дайджеста при повторном прохождении через хэш-функцию.
Шифрование SALT
Одно из шифрований, которое не очень любят, — это SALT-шифрование. Вы когда-нибудь задумывались, действительно ли ваши пароли, которые вы вводите на сайтах, безопасны? Некоторые из лучших сайтов имеют на своей платформе шифрование Salt Encryption. Вместо того чтобы вводить пароль, он сохраняется в базе данных или на сервере в тот момент, когда вы его вводите.
Добавляется к вашему паролю, хэшируется в более сложный пароль и сохраняется в базе данных или на сервере. Это касается всех паролей, но может использоваться и для других приложений.
SALT состоит из случайных битов, добавляемых к каждому экземпляру пароля перед его хэшированием. SALTS создает уникальные пароли даже в том случае, если два пользователя выбирают одинаковые пароли. SALTS помогают нам смягчить атаки на хэш-таблицы, заставляя злоумышленников заново вычислять их, используя соли для каждого пользователя.
См. схему ниже.
Руководство по работе с Windows 10
Это краткий обзор того, как я смог начать работу с SSH. У меня начались проблемы, когда я пытался добавить и найти ключи SSH на своей рабочей станции. Разобравшись с этим и заставив все работать, я решил добавить эту документацию для тех, кому она может понадобиться.
ПРЕДВАРИТЕЛЬНЫЕ УСЛОВИЯ
Благодаря нашим милым друзьям из Microsoft, у них есть забавный способ контролировать наши компьютеры через обновление окон. Я ненавижу этот их контроль над нами! Давайте проверим, отключены ли они
Внутри Powershell Terminal наберите:
Get-Service ssh-agent
Вы должны увидеть следующее:
Status Name DisplayName
Проверьте статус, чтобы узнать, отключен ли он на вашей стороне, запущен или работает автоматически. Мы хотим, чтобы он показывал Running и/или Running.
Если он отключен или если вы получаете ошибку unable to start ssh-agent service, error :1058
, просто перейдите по ссылке здесь, чтобы узнать, как его активировать.
Если все подтвердилось и служба активирована или запущена, переходите к следующим шагам.
MAKE SURE TO READ EVERYTHING ONCE BEFORE YOU START, TO GET A BRIEF OVERVIEW OF WHAT YOU WILL BE DOING, THEN WHEN YOU NEED TO, COME BACK TO REFERENCE IT STEP BY STEP.
Переход с рабочей станции на GitHub
ШАГ 1
Откройте административный терминал Powershell, который будет направлен в ROOT вашей рабочей станции. Внутри терминала введите:
(Открыть терминал Powershell) — Внутри Windows 10
- Нажмите кнопку «Пуск» Windows
- Введите
powershell
- Откройте от имени администратора
Введите это в Powershell Terminal:
ssh-keygen -t ed25519 -C "your_email@goeshere.com"
Это создаст новый SSH ключ, используя предоставленный email в качестве метки. Это будет выглядеть примерно так:
Generating public/private ed25519 key pair.
Когда появится запрос «Введите файл, в котором нужно сохранить ключ», нажмите Enter. При этом будет принято расположение файла по умолчанию.
Перед этим вы можете ввести здесь имя профиля, если хотите, или просто оставить его пустым. Однако будет разумно создать профиль для этого SSH-ключа, который вы собираетесь сделать, чтобы в случае возникновения проблем вы могли отследить свои ошибки. Ниже приведен пример:
> Enter a file in which to save the key (C:UsersWorkstation/.ssh/id_ed25519):[Press Enter]
В приглашении введите надежную парольную фразу. Я использую генератор надежных паролей для всех своих паролей. Легким нажатием кнопки он генерирует 1-1000 случайных паролей из алфавита или специальных символов. Это дает мне возможность копировать и вставлять их в места, где требуются новые или измененные пароли. Вот что должен показать вам терминал Powershell:
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
Проверка ключа(ей) SSH
ШАГ 2
После создания нового SSH-ключа необходимо проверить его существование. Это можно сделать двумя способами. Один способ может быть выполнен путем поиска в папках, он будет сохранен в папке C:/Users/Workstation/.ssh.
Now if you try looking for that folder, chances are it will be invisible. And if that is the case, you will need to open up folder options within Windows 10 and give yourself access to see those hidden folders & files. If you need help with that, [go here](https://dev.to/jasoncruzdev/revealing-your-hidden-folders-in-windows-10-15jl).
В папке /.ssh должно быть 2 файла, если вы впервые генерируете ssh-ключи. Они будут выглядеть следующим образом:
Лучший способ сделать это — использовать GitBash Если у вас нет GitBash, скачайте его!
- Откройте GitBash, но не как администратор.
- Далее введите
ls -al ~/.ssh
.
Это покажет вам список файлов в вашем каталоге /.ssh, если они существуют. Проверьте список каталогов, чтобы узнать, есть ли у вас уже открытый SSH-ключ. По умолчанию имена файлов поддерживаемых пар открытых ключей для GitHub являются одними из перечисленных ниже:
- *id_rsa * Это закрытый SSH-ключ.
-
id_rsa.pub Это открытый SSH-ключ
-
*id_ecdsa * Это закрытый SSH-ключ
-
*id_ecdsa.pub * Это открытый SSH-ключ
-
id_ed25519 Это закрытый SSH-ключ
-
id_ed25519.pub Это открытый SSH-ключ
Если у вас нет поддерживаемой пары открытого и закрытого ключей или вы не хотите использовать имеющиеся, сгенерируйте новый SSH-ключ с правильными учетными данными. И повторите этот шаг.
Если вы видите в списке существующую пару закрытого и открытого ключей (например, id_rsa и id_rsa.pub), которую вы хотите использовать для подключения к GitHub, вы можете добавить закрытый SSH-ключ в ssh-agent.
Добавление SSH-ключа в SSH-агент (ваша рабочая станция)
ШАГ 3
Что такое ssh-agent
?
SSH-AGENT — это вспомогательная программа, которая отслеживает идентификационные ключи пользователей и их парольные фразы. Агент может использовать эти ключи для входа на другие серверы без необходимости повторного ввода пользователем пароля или парольной фразы. Это реализует форму единого входа (SSO).
Давайте начнем с использования GitBash Teminal:
Введите ls -al ~/.ssh
.
В качестве примера вы должны увидеть что-то похожее на рисунок ниже:
Если да, то отлично!
Давайте двигаться дальше…
Добавление вашего открытого SSH-ключа на Github
ШАГ 4
- Войдите в свой аккаунт GitHub
-
Перейдите к НАСТРОЙКАМ
-
В разделе ДОСТУП перейдите к ключам SSH и GPG.
- Там нажмите на зеленую кнопку с надписью NEW SSH KEY.
- Добавьте
Новое название
— например, Private Laptop и т.д. - В разделе Ключ скопируйте и вставьте свой открытый код или перетащите id_ed25519.pub в раздел комментариев.
Если вы хотите узнать, как получить доступ к коду в файле id_ed25519.pub
, вы можете либо использовать VS Code, чтобы открыть его, либо перетащить в браузер Chrome — в любом случае вы узнаете, что находится в этом файле.
После того, как вы закончили добавление нового SSH-ключа на GitHub. Теперь мы добавим его в наш SSH-AGENT, после чего вы сможете протестировать свое соединение. Обратите внимание, когда вы будете тестировать подключение, вам нужно будет подтвердить подлинность этого действия с помощью пароля, который вы изначально использовали для настройки SSH-ключей.
- Откройте POWERSHELL
- Зайдите в папку с SSH ключами
C:Users<username>/.ssh/
, теперь найдите имя ssh ключа, который вы только что создали. - В терминале PowerShell введите
ssh-add .<private-key>
В моем случае я введуssh-add .id_ed25519
.
Теперь убедитесь, что SSH-ключ был введен правильно.
- В терминале PowerShell введите
ssh-add -l -E sha256
.
Если все сделано правильно, будет выведено следующее:
( будет ваш собственный unqiuq ssh-ключ, который вы получили при создании ssh-ключей, а ваш email будет тем, который вы используете для создания нового ssh-ключа.
Подключение к Github
ШАГ 5
Теперь нам нужно подключить GitHub к вашей рабочей станции. Сначала сделаем это следующим образом:
Войдите в терминал PowerShell и введите:
- Введите следующее:
ssh -T git@github.com
.
Вы можете увидеть предупреждение, как показано ниже:
The authenticity of host 'github.com (IP ADDRESS)' can't be established.
Теперь, чтобы это работало правильно, вы должны быть на 100% уверены, что шаги, которые вы сделали, были правильными как на вашей рабочей станции, так и на GitHub. Если вы поменяете или перепутаете ключи SSH, вы получите массу ошибок. Поэтому избавьте себя от этой головной боли.
На вопрос Вы уверены, что хотите продолжить подключение (да/нет)?
отвечайте «да».
После подключения эта ошибка будет другой, если вы попробуете снова. Потому что здесь происходит то, что он был перезаписан новым SSH-ключом. Теперь вы можете подключиться к GitHub с вашей рабочей станции.
Следующая хитрость — заставить ваш VSCode автоматически подключаться к GitHub, как только вы откроете VSCoode! Потрясающе, когда все «колокольчики» и «свистки» работают как надо.
Дайте мне знать, как вам помог этот пост, и если есть что-то, что я могу добавить к нему, чтобы другим было легче ориентироваться.
Ссылки:
SHA256 Шифрование
SSH — Secure Shell
OpenSSH
Шифрование Salt
Документы по аутентификации на Github
Текущие новости:
Законодатели пытаются положить конец шифрованию.