Настройка Git ssh linux

Обновлено: 21.11.2024

Чтобы понять Github, сначала нужно убедиться, что вы знакомы с Git . Git — это система управления версиями с открытым исходным кодом, созданная Линусом Тровальдсом. Короче говоря, Git — это система контроля версий, такая же как Subversion и CVS. Вы сможете использовать это, установив команду «git» и утилиты на свой сервер. Git — это инструмент командной строки, а GitHub — это место, где разработчики хранят свои проекты и работы и могут делиться ими с остальным миром, а также могут обновлять версии. У вас есть возможность создавать частные и общедоступные репозитории и использовать их в соответствии со своими потребностями.

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

Чтобы создать учетную запись на Github, выполните следующие действия

  • Перейдите в раздел «Присоединиться к GitHub».
  • Заполните свои данные и нажмите «Создать аккаунт».
  • Выберите нужный план и нажмите "Завершить регистрацию".
  • Когда вы зарегистрируетесь, вы получите электронное письмо для подтверждения своего адреса электронной почты. Нажмите на ссылку, чтобы завершить проверку.

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

Добавление ключа SSH в вашу учетную запись GitHub

Войдите в свой терминал через SSH.

Создайте пару ключей, выполнив следующую команду, подставив свой адрес электронной почты GitHub между кавычками:

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

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

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

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

  • Вам необходимо войти в учетную запись Github, используя свой логин/пароль.
  • Нажмите на изображение профиля и выберите "Настройки" в раскрывающемся списке.
  • Выберите «Ключи SSH и GPG» в меню слева.

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

В поле «Название» вам нужно добавить метку, которую вы сможете запомнить. (Я использовал MacBook Air Сумеша).

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

В поле «ключ» добавьте указанный выше ключ, который вы получите с помощью команды «cat /home/user/.ssh/id_rsa.pub», которая будет начинаться с ssh-rsa

При появлении запроса подтвердите свой пароль GitHub, который будет использоваться для проверки.

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

Проверьте подключение с локального компьютера к Github

Если вы впервые подключаетесь к этому компьютеру, вы увидите результат, подобный приведенному ниже, и в этом случае вам нужно ввести Да:

Вы увидите такой вывод:

Если указанный выше пользователь правильный и отображается как тот же, которого вы пытались добавить, значит, все в порядке, и вы завершили настройку ключа ssh с помощью Github! Если вам отказывают в разрешении, нам нужно перепроверить вышеуказанные шаги и убедиться, что вы сделали все в соответствии с вышеуказанным документом. Вы всегда можете связаться со мной, если вам понадобится помощь в этом случае.

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

О создании ключа SSH

Если у вас еще нет ключа SSH, необходимо создать новый ключ SSH для аутентификации. Если вы не уверены, есть ли у вас ключ SSH, вы можете проверить наличие существующих ключей. Дополнительные сведения см. в разделе «Проверка существующих ключей SSH».

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

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

Создание нового ключа SSH

Открыть Терминал Терминал Git Bash.

Вставьте приведенный ниже текст, заменив его своим адресом электронной почты GitHub.

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

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

Когда вам будет предложено "Введите файл для сохранения ключа", нажмите Enter. Это принимает расположение файла по умолчанию.

По запросу введите безопасную парольную фразу. Дополнительную информацию см. в разделе «Работа с парольными фразами SSH».

Добавление ключа SSH в ssh-agent

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

Запустите ssh-агент в фоновом режиме.

В зависимости от вашей среды вам может понадобиться использовать другую команду. Например, вам может понадобиться использовать root-доступ, запустив sudo -s -H перед запуском ssh-agent, или вам может понадобиться использовать exec ssh-agent bash или exec ssh-agent zsh для запуска ssh-agent.

Если вы используете macOS Sierra 10.12.2 или более позднюю версию, вам потребуется изменить файл ~/.ssh/config, чтобы ключи автоматически загружались в ssh-agent и сохранялись пароли в цепочке ключей.

Сначала проверьте, существует ли ваш файл ~/.ssh/config в папке по умолчанию.

Если файл не существует, создайте его.

Откройте файл ~/.ssh/config, затем внесите в него следующие строки. Если ваш файл ключа SSH имеет другое имя или путь, чем пример кода, измените имя файла или путь, чтобы они соответствовали вашим текущим настройкам.

Примечание. Если вы решили не добавлять кодовую фразу к своему ключу, вам следует опустить строку UseKeychain.

Примечание. Если вы видите такую ​​ошибку

добавьте дополнительную строку конфигурации в раздел Host *:

Добавьте свой закрытый ключ SSH в ssh-agent и сохраните парольную фразу в цепочке ключей. Если вы создали свой ключ с другим именем или если вы добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла вашего закрытого ключа.

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

Если у вас не установлена ​​стандартная версия Apple, вы можете получить сообщение об ошибке. Дополнительные сведения об устранении этой ошибки см. в разделе «Ошибка: ssh-add: недопустимая опция — K».

В MacOS Monterey (12.0) флаги -K и -A устарели и заменены флагами --apple-use-keychain и --apple-load-keychain соответственно.

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

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

Убедитесь, что агент ssh запущен. Вы можете воспользоваться инструкциями «Автозапуск ssh-agent» в разделе «Работа с парольными фразами SSH» или запустить его вручную:

Добавьте свой закрытый ключ SSH в ssh-agent. Если вы создали свой ключ с другим именем или если вы добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла вашего закрытого ключа.

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

Запустите ssh-агент в фоновом режиме.

В зависимости от вашей среды вам может понадобиться использовать другую команду. Например, вам может понадобиться использовать root-доступ, запустив sudo -s -H перед запуском ssh-agent, или вам может понадобиться использовать exec ssh-agent bash или exec ssh-agent zsh для запуска ssh-agent.

Добавьте свой закрытый ключ SSH в ssh-agent. Если вы создали свой ключ с другим именем или если вы добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла вашего закрытого ключа.

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

Создание нового ключа SSH для аппаратного ключа безопасности

Если вы используете macOS или Linux, вам может потребоваться обновить клиент SSH или установить новый клиент SSH перед созданием нового ключа SSH. Дополнительные сведения см. в разделе «Ошибка: неизвестный тип ключа».

Вставьте аппаратный ключ безопасности в свой компьютер.

Открыть Терминал Терминал Git Bash.

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

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

При появлении запроса нажмите кнопку на аппаратном ключе безопасности.

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

Когда вам будет предложено ввести кодовую фразу, нажмите Enter.

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

  • "О SSH"
  • "Работа с парольными фразами SSH"
  • "Авторизация ключа SSH для использования с единым входом SAML" в документации GitHub Enterprise Cloud

Помогите нам сделать эти документы лучше!

Все документы GitHub имеют открытый исходный код. Видите что-то неправильное или непонятное? Отправьте запрос на вытягивание.

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

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

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

Разрастание UX-дизайна имитирует разрастание городов как в стремлении к росту, так и в потенциально опасных подводных камнях. Вот несколько вещей .

Запах кода может стать причиной плохого кодирования в угольной шахте. А плохое кодирование — это признак того, что требуется рефакторинг. Давайте .

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

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

Amazon ECS и EKS похожи, но их различий достаточно, чтобы выделить их для пользователей AWS. Узнайте, что лучше всего подходит для вашего .

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

Популярный пакет JavaScript был саботирован его разработчиком и содержал сообщения в поддержку Украины, что превратилось в .

Компания Trend Micro обнаружила, что ботнет Cyclops Blink, изначально нацеленный на устройства WatchGuard, теперь распространяется на Asus.

Таинственная группа вымогателей LokiLocker привлекла внимание исследователей BlackBerry, которые говорят, что эта группа может стать .

Считаете, что готовы к сертификационному экзамену AWS Certified Solutions Architect? Проверьте свои знания, ответив на эти 12 вопросов и.

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

Amazon хотела бы укрепить свое глобальное присутствие, но гигант электронной коммерции сегодня сталкивается с препятствиями и проблемами, которых у него не было.

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

В этом посте вы узнаете, как использовать GitHub, GitLab и Bitbucket с SSH.

Убедитесь, что клиент SSH установлен

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

Чтобы убедиться, откройте терминал и выполните:

Эта команда должна вывести номер версии используемого клиента SSH:

В случае, если система сообщает, что команда ssh не найдена, вы можете установить запущенный клиент OpenSSH:

Проверить существующие ключи SSH

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

Чтобы узнать, присутствуют ли существующие ключи SSH, запустите:

Эта команда должна отображать содержимое папки ~/.ssh, в которой клиент SSH хранит свои файлы конфигурации:

Если вы получили сообщение об ошибке, что каталог ~/.ssh отсутствует или в нем нет файлов, не беспокойтесь: это означает, что вы еще не создали пару ключей SSH. В этом случае перейдите к следующей теме.

По умолчанию общедоступные ключи SSH называются:

  • id_dsa.pub;
  • id_ecdsa.pub;
  • id_ed25519.pub; или
  • id_rsa.pub.

В папке ~/.ssh у меня есть пара ключей SSH ( id_rsa.pub — открытый ключ, а id_rsa — закрытый ключ), созданная год назад (18 июля 2018 г.).

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

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

Создать новую пару ключей SSH

Он спросит, где сохранить закрытый ключ ( id_rsa ).

Нажмите Enter, чтобы принять местоположение по умолчанию.

Если у вас уже есть закрытый ключ, он спросит, следует ли его перезаписать:

В этом случае введите y и нажмите Enter.

Затем введите и еще раз введите парольную фразу (подумайте об этом как о пароле):

Пара ключей SSH создается в ~/.ssh .

Все взаимодействие должно выглядеть примерно так:

Добавить закрытый SSH-ключ к ssh-agent

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

Чтобы запустить ssh-агент в фоновом режиме, выполните следующее:

Эта команда выводит идентификатор процесса ssh-agent:

Затем добавьте свой закрытый ключ SSH в ssh-agent:

Введите кодовую фразу и нажмите Enter:

Команда подтверждает, что закрытый ключ SSH был добавлен к ssh-agent:

Добавьте открытый ключ SSH в свой аккаунт

После того как у вас есть ключ SSH и вы добавили его в ssh-agent, вы можете настроить подключение через SSH. Давайте посмотрим, как это сделать для каждого из трех серверов: GitHub, GitLab и Bitbucket.

Во всех трех случаях процесс аналогичен. Начните с копирования содержимого файла открытого ключа SSH ( ~/.ssh/id_rsa.pub) в буфер обмена с помощью команды xclip:

xclip — это утилита командной строки, которая позволяет получить доступ к буферу обмена графического интерфейса из терминала. Если он не установлен, вы можете установить его работающим:

GitHub

В правом верхнем углу страницы нажмите на фото своего профиля, затем нажмите «Настройки»:

На боковой панели пользовательских настроек нажмите ключи SSH и GPG. Затем нажмите Новый ключ SSH.

Заполните поле Название описательной меткой для нового ключа (например, имя вашего компьютера) и вставьте свой открытый ключ в поле Ключ. Наконец, нажмите Добавить ключ SSH:

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

GitLab

В правом верхнем углу страницы нажмите на фото своего профиля, затем нажмите «Настройки»:

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

Вставьте свой открытый ключ в поле Ключ. Заполните поле Название описательной меткой для нового ключа (например, имя вашего компьютера). Наконец, нажмите Добавить ключ:

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

Битбакет

В левом нижнем углу страницы нажмите на фото своего профиля, затем нажмите Настройки Bitbucket:

На боковой панели «Настройки» в разделе «Безопасность» нажмите «Ключи SSH». Затем нажмите Добавить ключ.

Заполните поле Метка описательной меткой для нового ключа (например, имя вашего компьютера) и вставьте свой открытый ключ в поле Ключ. Наконец, нажмите Добавить ключ:

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

Проверьте подключение через SSH

GitHub, GitLab и Bitbucket позволяют проверить, правильно ли настроено соединение SSH, прежде чем использовать его с Git.

GitHub

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

Эта команда пытается получить удаленный доступ по SSH к GitHub.

Если вы впервые подключаетесь к GitHub через SSH, клиент SSH спросит вас, может ли он доверять открытому ключу сервера GitHub:

Введите yes и нажмите Enter. Клиент SSH добавляет GitHub в список доверенных хостов:

После добавления в список известных хостов вас больше не будут спрашивать об открытом ключе GitHub.

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

Если вы успешно прошли тест, теперь вы можете использовать SSH с GitHub.

Все взаимодействие должно выглядеть примерно так:

GitLab

Если вы добавили ключ SSH в свою учетную запись GitLab, тест будет очень похож:

Если вы успешно прошли тест, теперь вы можете использовать SSH с GitLab.

Битбакет

Если вы добавили свой SSH-ключ в свою учетную запись Bitbucket, проверка будет очень похожей:

Если вы успешно прошли тест, теперь вы можете использовать SSH с Bitbucket.

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

GitHub

На GitHub перейдите в репозиторий проекта, нажмите «Клонировать» или загрузите и скопируйте URL-адрес, чтобы клонировать репозиторий с помощью SSH:

URL-адрес репозитория GitHub выглядит следующим образом:

Откройте терминал и запустите команду git clone, передав скопированный URL-адрес в качестве аргумента.

Совет: чтобы вставить в терминал, используйте Ctrl + Shift + V.

Обратите внимание, что теперь Git клонирует репозиторий, не запрашивая пароль:

GitLab

В GitLab перейдите в репозиторий проекта, нажмите «Клонировать» и скопируйте URL-адрес, чтобы клонировать репозиторий с помощью SSH:

URL-адрес репозитория GitLab выглядит так:

Откройте терминал и запустите команду git clone, передав скопированный URL-адрес в качестве аргумента:

Обратите внимание, что теперь Git клонирует репозиторий, не запрашивая пароль.

Битбакет

В Bitbucket перейдите в репозиторий проекта, нажмите «Клонировать» и скопируйте команду для клонирования репозитория с помощью SSH:

Обратите внимание, что в отличие от GitHub и GitLab, которые представляют URL-адрес, Bitbucket представляет всю команду git clone, включая URL-адрес.

URL-адрес репозитория Bitbucket выглядит следующим образом:

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

Обратите внимание, что теперь Git клонирует репозиторий, не запрашивая пароль.

Перенастроить существующие репозитории для использования SSH

Для этого откройте терминал и измените текущий каталог на локальный репозиторий.

Выведите список существующих удаленных репозиториев и их URL-адреса с помощью:

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

Измените URL вашего удаленного репозитория с помощью:

Запустите git remote -v еще раз, чтобы убедиться, что URL-адрес удаленного репозитория изменился:

Ссылки

Я надеюсь, что эти советы могут оказаться полезными для вас, как и для меня с тех пор, как я начал использовать Git. Если у вас есть какие-либо вопросы или проблемы, не стесняйтесь комментировать! Увидимся!

И всегда помните: получайте массу удовольствия…

Вам понравилось? Как насчет обмена?

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

Читайте также: