ГлавнаяОперационные системыLinuxКак защитить доступ к Github с помощью SSH-ключа

Как защитить доступ к Github с помощью SSH-ключа

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

Примечание. Вы впервые знакомы с Git? Учитесь у наше руководство по началу работы прямо сейчас .

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

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

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

-public-key.png" alt="Терминал, показывающий пример открытого ключа SSH.">

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

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

Полезно знать. К установка GNU Клеопатры в Linux узнайте больше о криптографии с открытым ключом и о том, как она может защитить вашу личность в Интернете.

Генерация ключей SSH для Github

Для начала откройте новый сеанс терминала с помощью средства запуска приложений вашего дистрибутива.

Убедитесь, что на вашем компьютере установлен OpenSSH и демон агента SSH запущен:

sudo apt install ssh
eval `ssh-agent -s`

Выполните следующую команду, чтобы запустить мастер Генерация ключей SSH :

ssh-keygen -t ed25519 -C "[email protected]"

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

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

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

Генерация ключей SSH для Github

https://saintist.ru/wp-content/uploads/2024/05/secure-github-access-ssh-key-03-passphrase-prompt.png" alt="Терминал, показывающий запрос пароля для нового ключа SSH.">

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

Добавьте вновь сгенерированный ключ SSH к работающему в данный момент агенту SSH:

ssh-add ~/.ssh/id_ed25519

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

Добавление ключей SSH в Github

Когда ваш новый SSH-ключ настроен и работает, вы теперь можете связать свой локальный компьютер со своей учетной записью Github. Для начала выполните следующую команду, чтобы распечатать открытый ключ SSH:

cat ~/.ssh/id_ed25519.pub

Выделите свой открытый ключ SSH, нажмите правую кнопку мыши и выберите «Копировать».

Терминал, показывающий опцию «Копировать» в строке контекстного меню.

Откройте новый сеанс браузера, затем перейдите на домашнюю страницу Github.

Нажмите значок своего профиля в правом верхнем углу страницы.

Скриншот домашней страницы Github по умолчанию.

Нажмите «Настройки» в раскрывающемся списке.

Снимок экрана, на котором показан параметр «Настройки» в меню профиля Github.

Выберите «Ключи SSH и GPG» на левой боковой панели страницы настроек.

Снимок экрана, на котором показаны параметры ключей SSH и GPG в меню настроек Github.

Нажмите кнопку «Новый ключ SSH» рядом с заголовком «Ключи SSH».

Снимок экрана, на котором выделена кнопка «Новый ключ SSH» на странице ключей SSH и GPG.

Выберите текстовое поле «Название», затем укажите имя для вашего ключа.

Нажмите текстовое поле «Ключ», затем нажмите Ctrl+ V, чтобы вставить ключ SSH.

Нажмите «Добавить ключ SSH», чтобы сохранить новые настройки.

Добавление ключей SSH в Github-ssh-key-09-add-ssh-key-button.png" alt="Безопасный доступ к Github Ssh Key 09 Кнопка добавления Ssh ключа">

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

ssh -T git@github.com

Введите «да», затем нажмите Enter.

Терминал, отображающий запрос на доверие к отпечатку SSH.

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

Терминал, выделяющий короткое подтверждающее сообщение от Github.

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

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

Откройте новый сеанс терминала на компьютере, который вы хотите связать с Github.

Убедитесь, что демон OpenSSH установлен и запущен в системе:

sudo apt install ssh
eval `ssh-agent -s`

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

ssh-keygen -t ed25519 -f ~/.ssh/id-ed25519-pc2 -C "[email protected]"

Введите безопасную фразу-пароль для нового ключа SSH, затем нажмите Enter.

Добавьте новый альтернативный ключ в свой SSH-агент:

ssh-add ~/.ssh/id-ed25519-pc2

Распечатайте содержимое вашего открытого ключа SSH, а затем скопируйте его в буфер обмена вашей системы:

cat ~/.ssh/id-ed-25519-pc2

Вернитесь на страницу «Ключи SSH и GPG» вашего аккаунта Github.

Снова нажмите кнопку «Новый ключ SSH».

Укажите уникальную метку для нового ключа, а затем вставьте содержимое буфера обмена в текстовое поле «Ключ».

Снимок экрана, показывающий новый альтернативный ключ в Github.

Нажмите «Добавить ключ SSH», чтобы применить новые настройки.

Проверьте, использует ли ваш новый компьютер ваш безопасный ключ для подключения к Github, войдя в систему через SSH:

ssh -T git@github.com

Изменение существующих ключей SSH

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

Чтобы изменить существующий ключ, перейдите в каталог «.ssh» вашего компьютера:

cd ~/.ssh

Запустите ssh-keygenс флагами -p, -oи -fвместе с вашим ключом SSH. Это позволит вам изменить пароль существующего закрытого ключа:

ssh-keygen -p -o -f ./id-ed25519

Примечание. Вы также можете использовать эти флаги для преобразования обычного ключа SSH в ключ без пароля.

Вы также можете изменить встроенный адрес электронной почты в ваш открытый ключ, используя флаг -c:

ssh-keygen -c -C "[email protected]" -f ./id-ed25519

Перезагрузите агент SSH с новым обновленным ключом:

ssh-add ~/

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

re>

Замените соответствующий открытый ключ SSH из своего профиля Github.

Снимок экрана, показывающий недавно измененный ключ SSH в Github.

Удаление ключей SSH из Github

Откройте новый сеанс терминала, затем запустите демон агента SSH:

eval `ssh-agent -s`

Выполните следующую команду, чтобы удалить закрытый ключ SSH на вашем компьютере:

ssh-add -d ~/.ssh/id-ed25519

Вернитесь в категорию «Ключи SSH и GPG» вашего аккаунта Github.

Прокрутите список ключей SSH на этой странице, затем нажмите «Удалить» на том, который хотите удалить.

Снимок экрана, на котором выделена кнопка «Удалить» для недавно измененного ключа SSH.

Нажмите «Я понимаю, удалите этот SSH-ключ».

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

Убедитесь, что ваш старый ключ SSH больше не работает, запустив сеанс SSH с одним из серверов Github:

ssh -T ssh@github.com

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

А пока вы также можете узнать больше об автоматическом управлении репозиторием от использование хуков Git .

Изображение предоставлено: Роман Синкевич через Unsplash . Все изменения и скриншоты Рамсеса Реда.

Изменение существующих ключей SSH

Удаление ключей SSH из Github

ПОХОЖИЕ СТАТЬИ

Популярные записи