Экономьте время на входе в GitHub через SSH, используя аутентификацию без пароля.

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

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

Понимание SSH-аутентификации

Аутентификация с помощью SSH предполагает использование криптографические ключи установить безопасное соединение (туннель) между клиентом (локальной машиной) и сервером (GitHub).

При использовании SSH для GitHub пользователь генерирует пару ключей SSH — открытый ключ и закрытый ключ. Открытый ключ загружается в учетную запись GitHub пользователя, а закрытый ключ надежно хранится на локальном компьютере пользователя.

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

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

Настройка SSH для GitHub

В этом разделе вы увидите, как настроить SSH для аутентификации с помощью GitHub.

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

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

  1. Откройте терминал или командную строку.
  2. Выполните следующую команду, чтобы сгенерировать новую пару ключей SSH:
     ssh-keygen -t rsa -b 4096 -C "ваш адрес@домен.com"
  3. Вам будет предложено ввести местоположение файла для сохранения пары ключей. Нажимать Входить чтобы принять местоположение по умолчанию (~/.ssh/id_rsa) или указать собственное местоположение.
     > Создание пары открытый/закрытый ключ rsa.
     > Введите файл вкоторый чтобы сохранить ключ (/home/vagrant/.ssh/id_rsa):
  4. Далее вам будет предложено ввести кодовую фразу. Хотя это и необязательно, добавление парольной фразы служит дополнительным уровнем безопасности. Убедитесь, что вы помните парольную фразу.
     > Введите парольную фразу (пусто для без пароля): 
     > Введите тот же пароль еще раз:
  5. После генерации пары ключей вы должны увидеть два файла в указанном месте. id_rsa (закрытый ключ) и id_rsa.pub (открытый ключ).
     > Ваша идентификация сохранена в /home/vagrant/.ssh/id_rsa.
     > Ваш открытый ключ сохранен в /home/vagrant/.ssh/id_rsa.pub.
  6. По завершении отображаются отпечаток ключа и случайное изображение.
  7. Наконец, вам понадобится содержимое открытого ключа, чтобы добавить его на GitHub. Выполните следующую команду, чтобы получить содержимое:
     кошка ~/.ssh/id_rsa.pub

Обязательно укажите путь (~/.ssh/id_rsa.pub в моем случае), который вы использовали при создании ключей.

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

2. Добавление открытого ключа на GitHub

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

  1. Войдите в свою учетную запись GitHub и перейдите в свою учетную запись Настройки.
  2. Нажмите на Ключи SSH и GPG расположен на левой боковой панели.
  3. Нажмите на Новый SSH-ключ.
  4. Дайте вашему SSH-ключу Заголовок.
  5. Вставьте содержимое открытого ключа в Ключ поле.
  6. Наконец, нажмите на Добавить SSH-ключ чтобы сохранить ключ SSH в своей учетной записи GitHub.

Вы успешно экспортировали открытый ключ в свою учетную запись GitHub.

3. Настройка агента SSH

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

  1. Убедитесь, что агент SSH запущен.
     $ оценка"$(ssh-агент -s)"
     > Код агента 2757
  2. Добавьте закрытый ключ в агент SSH.
     $ ssh-добавить ~/.ssh/id_rsa
     > Введите кодовую фразу для /home/vagrant/.ssh/id_rsa:
     > Добавлена ​​идентификация: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

Вы успешно настроили агент SSH для управления вашими ключами.

4. Тестирование SSH-соединения

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

  • Запустите команду ниже, чтобы проверить SSH-соединение с GitHub;
     ssh -T [email protected]
    если все пойдет нормально, вы увидите предупреждение об отпечатке пальца. Подтвердите отпечаток пальца и тип да продолжать.
     > Подлинность хозяина 'github.com (140.92.130.4)' можетне установиться.
    > Отпечаток ключа ECDSA: SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
    > Вы уверены, что хотите продолжать подключение (да/нет)?
  • После ввода да, вы увидите вывод, аналогичный приведенному ниже.
     > Предупреждение: постоянно добавлено 'github.com, 140.92.130.4' (ECDSA) в список известных хостов.
    > Привет, принцвиллингу! Тыуспешно прошли аутентификацию, но GitHub не предоставляет доступ к оболочке.

Это показывает, что аутентификация прошла успешно.

Управление репозиториями с помощью SSH

Настройка SSH позволяет вам управлять своими репозиториями, не беспокоясь о проблемах с паролями и токенами доступа.

Настройка удаленного URL-адреса

git удаленный набор-url происхождения [email protected]:/.git

Клонирование репозитория

мерзавец клон [email protected]:/.git

Отправка изменений в репозиторий

git push происхождение 

Вытягивание изменений из репозитория

git вытащить происхождение 

Преимущества SSH перед аутентификацией по паролю

Использование SSH для аутентификации предлагает несколько заметных преимуществ по сравнению с традиционными методами аутентификации на основе пароля. Это включает в себя:

  • Аутентификация SSH устраняет необходимость в паролях, снижая риск кражи учетных данных.
  • Использование криптографических ключей делает его более защищенным от атаки грубой силы по сравнению с паролями.
  • Если ваш закрытый ключ скомпрометирован, вы можете отозвать и заменить его, что сделает скомпрометированный ключ бесполезным.

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

Лучшие практики и устранение неполадок

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

  1. Всегда устанавливайте парольную фразу, чтобы создать дополнительный уровень безопасности.
  2. Практикуйте частую ротацию ключей и резервное копирование.
  3. Подтверждайте каждый шаг, чтобы избежать ошибок прав доступа или неправильной конфигурации агента SSH.

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

Универсальность SSH

SSH широко используется в других областях для удаленного управления серверами, микроконтроллерами и сетевыми устройствами, поскольку обеспечивает безопасный доступ. в интерфейс командной строки (CLI), что позволяет пользователям выполнять различные задачи, настраивать параметры, передавать файлы и устранять неполадки. проблемы.