Как авторизоваться в git через консоль linux

Обновлено: 04.07.2024

Собственно о том, как настроить этот самый SSH и пойдет речь в этой статье.

Но сначала о том, что особенного в этом методе подключения.

Для начала, проверим нет ли у нас каких либо уже существующих ключей.

Запустим Git Bash и введем команду

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

Генерируем ключи

Для генерации новой пары ключей в консоли git bash введите следующую команду:

В этой команде параметр -t задает тип, в данном случае мы используем rsa. Параметр -b задает длину ключа, 4096 выглядит вполне подходящим значением. Параметр -C задает комментарий к генерируемым ключам, в котором мы указываем свой email адрес.

Git bash сообщит что происходит генерация ключа, а после попросит указать место сохранения файлов с ключами. Мы можем либо нажать Enter и согласиться с местоположением и именем по умолчанию:

/.ssh/id_rsa.pub, либо указать свой вариант.

Добавляем ключи к ssh-агенту

Теперь нам нужно добавить сгенерированные ключи к ssh-агенту.

Тут есть интересная вещь, если у вас установлен Git Desktop, то вы можете управлять репозиториями через него и не обращать внимания на то, о чем мы тут говорим. Однако же, управление Git через консоль с помощью какой либо утилиты, вроде Git for Windows, о чем мы здесь и рассуждаем, является более предпочтительным методом, поэтому стоит обратить внимание на вопросы запуска ssh-агента. Далее в статье мы рассмотрим, как настроить его автоматический запуск, сейчас же мы запустим его вручную, командой:

Теперь нам нужно добавить созданные ключи к ssh-агенту. Сделаем мы это командой:

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

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

Для этого сначала получим значение открытого ключа при помощи следующей команды:

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

Проверка SSH-соединения

Теперь давайте проверим ssh-соединение. Для этого в консоли Git Bash введем команду:

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

После ввода пароля вы можете получить что-то вроде:

В этом случае проверьте, что и вы и Git Bash имеете в виду один и тот же ключ, сверив выведенное значение отпечатка (fingerprint) с тем, что было получено при генерации ключей. Ели все в порядке, отвечайте на вопрос утвердительно.

где вместо username должно присутсвовать имя вашей учетной записи.

Изменение пароля шифрования закрытого ключа

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

Автоматический запуск ssh-агента при старте Git Bash

Для того, чтобы ssh-агент каждый раз запускался автоматически при старте Git Bash, добавьте в файл

/.bashrc следующий код:

Теперь при запуске Git Bash также будет запускаться и ssh-агент. Если при генерации ключей (или позже) мы задали пароль для шифрования закрытого ключа, при запуске, ssh-агент будет проявлять интерес к его значению. Поянтно, что после закрытия Git Bash, его содержимое будет забыто и закрытый ключ будет в безопасности.

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

GitHub — один из используемых сервисов размещения проектов для совместной разработки. Он поддерживает контроль версий, возможность отслеживания изменений кода, сравнение строк, а также он бесплатен.

В данной статье приведены примеры использования сервиса на компьютере под управлением операционных систем семейства Linux. Мы рассмотрим, как создать проект на локальном компьютере и залить его на сервис с помощью командной строки. Рассмотренные варианты использования git также можно применять на desktop системах, запустив окно терминала.

Установка git

Управление выполняется с помощью приложения git. Если его нет в системе, установку можно выполнить из репозитория.

Если используем CentOS / Red Hat:

yum install git-core

Если используем Ubuntu / Debian:

apt-get install git

Если мы хотим воспользоваться сервисом с компьютера Windows или Mac OS, необходимо скачать и установить desktop версию с официального сайта.

Синтаксис

Команды имеют следующий синтаксис:

* полный перечень опций, команд и аргументов можно получить командой man git.

Создание проекта на локальном компьютере

Инициализируем проект для git:

Мы получим ответ похожий на:

Initialized empty Git repository in /projects/.git/

Это означает, что репозиторий git создан.

Теперь добавим файлы в репозиторий:

* данной командой мы добавили папку и ее содержимое в репозиторий git.

Отправка данных на GitHub

Создание репозитория

Проходим процесс подтверждения, что мы не робот. Затем завершаем несколько шагов регистрации, нажимая Submit. В итоге мы получим письмо на адрес электронной почты, которую указали при регистрации. Необходимо будем подтвердить email, перейдя в письме по кнопке Verify email address.

Создаем репозиторий. Для этого кликаем по иконке профиля и переходим в раздел Your repositories:

Переход к созданию нового репозитория на GitHub

И кликаем по кнопке New. В следующем окне даем название репозиторию и нажимаем Create repository:

Создаем репозиторий на GitHub

Мы увидим страницу с путем к репозиторию:

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

Заливаем проект в репозиторий на GitHub

Добавляем комментарий к нашему проекту:

git commit -m "Очередное изменение проекта" -a

* где Очередное изменение проекта — произвольный комментарий; параметр -a указывает, что комментарий нужно применить ко всем измененным файлам.

Теперь подключаемся к созданному репозиторию:

* где dmosktest — логин, который был указан при регистрации на github, а project1 — название, которое мы задали, когда создавали репозиторий.
* удалить удаленный репозиторий можно командой git remote rm origin.

Закидываем проект на GitHub:

git push origin master

* где master — ветка проекта (веток может быть несколько).

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

Загруженный проект на GitHub

Получение файлов с GitHub

Для загрузки на компьютер файлов, создаем каталог с проектом и переходим в него:

Проводим начальную настройку локального репозитория:

Подключаемся к удаленному репозиторию:

Скачиваем проект командой:

Клонирование проекта

git clone <репозиторий на GitHub>

Например, использую наш репозиторий:

* данная команда создаст в текущей папке каталог project1 и инициализирует его как локальный репозиторий git. Также загрузит файлы проекта.

Возможные ошибки

* где dmosktest/project1.git — путь к нашему репозиторию.

Причина: проект ни разу не был зафиксирован (закоммичен).

Теперь, когда Git установлен в вашей системе, самое время настроить среду для работы с Git под себя. Это нужно сделать только один раз — при обновлении версии Git настройки сохранятся. Но, при необходимости, вы можете поменять их в любой момент, выполнив те же команды снова.

В состав Git входит утилита git config , которая позволяет просматривать и настраивать параметры, контролирующие все аспекты работы Git, а также его внешний вид. Эти параметры могут быть сохранены в трёх местах:

Файл [path]/etc/gitconfig содержит значения, общие для всех пользователей системы и для всех их репозиториев. Если при запуске git config указать параметр --system , то параметры будут читаться и сохраняться именно в этот файл. Так как этот файл является системным, то вам потребуются права суперпользователя для внесения изменений в него.

/.config/git/config хранит настройки конкретного пользователя. Этот файл используется при указании параметра --global и применяется ко всем репозиториям, с которыми вы работаете в текущей системе.

Файл config в каталоге Git (т. е. .git/config ) репозитория, который вы используете в данный момент, хранит настройки конкретного репозитория. Вы можете заставить Git читать и писать в этот файл с помощью параметра --local , но на самом деле это значение по умолчанию. Неудивительно, что вам нужно находиться где-то в репозитории Git, чтобы эта опция работала правильно.

Настройки на каждом следующем уровне подменяют настройки из предыдущих уровней, то есть значения в .git/config перекрывают соответствующие значения в [path]/etc/gitconfig .

В системах семейства Windows Git ищет файл .gitconfig в каталоге $HOME ( C:\Users\$USER для большинства пользователей). Кроме того, Git ищет файл [path]/etc/gitconfig , но уже относительно корневого каталога MSys, который находится там, куда вы решили установить Git при запуске инсталлятора.

Если вы используете Git для Windows версии 2.х или новее, то так же обрабатывается файл конфигурации уровня системы, который имеет путь C:\Documents and Settings\All Users\Application Data\Git\config в Windows XP или C:\ProgramData\Git\config в Windows Vista и новее. Этот файл может быть изменён только командой git config -f <file> , запущенной с правами администратора.

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

Имя пользователя

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

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

Многие GUI-инструменты предлагают сделать это при первом запуске.

Выбор редактора

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

В случае с Notepad++, популярным редактором, скорее всего вы захотите установить 32-битную версию, так как 64-битная версия ещё не поддерживает все плагины. Если у вас 32-битная Windows или 64-битный редактор с 64-битной системой, то выполните следующее:

Vim, Emacs и Notepad++ — популярные текстовые редакторы, которые часто используются разработчиками как в Unix-подобных системах, таких как Linux и Mac, так и в Windows. Если вы используете другой редактор или его 32-битную версию, то обратитесь к разделу Команды git config core.editor за дополнительными инструкциями как использовать его совместно с Git.

В случае, если вы не установили свой редактор и не знакомы с Vim или Emacs, вы можете попасть в затруднительное положение, когда какой-либо из них будет запущен. Например, в Windows может произойти преждевременное прерывание команды Git при попытке вызова редактора.

Настройка ветки по умолчанию

Когда вы инициализируете репозиторий командой git init , Git создаёт ветку с именем master по умолчанию. Начиная с версии 2.28, вы можете задать другое имя для создания ветки по умолчанию.

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

Проверка настроек

Если вы хотите проверить используемую конфигурацию, можете использовать команду git config --list , чтобы показать все настройки, которые Git найдёт:

Некоторые ключи (названия) настроек могут отображаться несколько раз, потому что Git читает настройки из разных файлов (например, из /etc/gitconfig и

/.gitconfig ). В таком случае Git использует последнее значение для каждого ключа.

Также вы можете проверить значение конкретного ключа, выполнив git config <key> :

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

Как настроить подключение к удаленному Git-репозиторию, через SSH, на компьютере с Windows 7 . И соответственно выкачать содержимое к себе на локальный сервер.

Удаленный репозиторий находится на сервере с git. мне нужно просто склонировать содержимое. никаких пушей обратно. там есть идентификация. сгенерил паблик кей и отослал спец-ту на той стороне. как мне добавить ранее сгенеренный-свой ключ через консоль и подключиться к серверу? какие команды. Windows 7 на моей машине.


31.9k 22 22 золотых знака 119 119 серебряных знаков 206 206 бронзовых знаков 139 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков @NickVolynkin удаленный репозиторий находится на сервере с git. мне нужно просто склонировать содержимое. никаких пушей обратно. там есть идентификация. сгенерил паблик кей и отослал спец-ту на той стороне. как мне добавить ранее сгенеренный-свой ключ через консоль и подключиться к серверу? какие команды. Windows 7 на моей машине. @NickVolynkin разобрался. остался 1 вопрос. как через консоль добавить ssh ключ, который был ранее создан. не через веб-интерфейс, а именно через консоль к себе в гит. на удаленный сервер я передал спец-ту. он добавил. у меня при подключении не цепляется ключ. вот поэтому я и спрашиваю

Установка

Если ещё не установлен, то Git можно взять здесь. Вместе с ним будет unix-like консоль Git Bash.

Клонирование через SSH

Пример команды для клонирования через SSH.

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

Создание ssh-ключа.

На Windows можно как через cmd, так и Git Bash, на *nix — просто в консоли. Но в cmd я не разбираюсь, поэтому привожу инструкцию только для Git Bash & *nix:

Можно выбрать passphrase, который повышает надёжность, но его нужно будет вводить каждый раз при использовании. Если забудете — ключ бесполезен для дальнейшего использования.

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

Именно публичный ключ нужно передавать специалисту на той стороне. (Наверняка вы так и сделали, но всё-таки стоит об этом сказать)

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

Если ключ уже есть

То его надо положить в c:\Users\%username%\.ssh . Если имя ключа отличается от id_rsa , то надо создать файл c:\Users\%username%\.ssh\config со следующим содержимым:


31.9k 22 22 золотых знака 119 119 серебряных знаков 206 206 бронзовых знаков

В ней полностью показаны клиентские программы для работы с push-ом и pull-ом. У меня лично Windows недолюбливал родной Git клиент, но всегда прекрасно работает с Tortoise (есть в статье).

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

Добавил, как попросили, кратко содержимое статьи:

Я рекомендую выбрать "Run Git from the Windows Command Prompt". Все остальные опции можно оставлять по-умолчанию. После установки Git нужно перегрузиться или завершить сеанс пользователя и снова войти, чтобы применились изменения в системной переменной PATH.

Далее нужно проверить, доступен ли Git для работы. В любом каталоге даем команду:

Если получаем информацию о версии, то Git установлен и работает. Если получаем информацию что программа git не найдена, разбираемся что сделали не так.

Настройка SSH-ключей в Windows

В операционной системе Windows генератор SSH-ключей включен в комплект поставки Git. Для генерации ключей необходимо запустить на выполнение файл C:\Program Files\Git\Git bash.vbs. Его можно запустить как обычный exe-шник. Откроется программа "Консоль git". В ней надо дать команду:

Будьте внимательны, в этой консоли подглючивает копи-паст, проще ввести команду вручную. В качестве email указываем свой почтовый ящик. На запрос "Enter file in which to save the key" просто нажимаем Enter. При запросе пароля "Enter passphrase" и "Enter same passphrase again" просто нажимаем Enter. В процессе генерации ключей в консоли будет выдаваться примерно следующая информация:

После выполнения этой программы, в каталоге C:\Documents and Settings\username.ssh будут лежать файлы id_rsa и id_rsa.pub, они нам пригодятся в дальнейшем.

Установка SSH-ключа в GitHub

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

Сразу после регистрации необходимо прописать в системе GutHub свой публичный ключ шифрования (открытый SSH-ключ). Для добавления ключа, надо в правом верхнем углу нажать "Account Settings".

В открывшемся окне нужно кликнуть на пункт меню "SSH Public Keys", и нажать "Add Another Public Key". Появится два поля - название ключа (Title) и содержимое ключа (Key).

В поле Title можно написать название компьютера, на котором сгенерирован публичный ключ. Можно писать по-русски.

В поле Key надо вставить содержимое файла id_rsa.pub . Помните, в каком каталоге они находятся? Переходим в этот каталог, открываем любым текстовым редактором файл id_rsa.pub (именно с расширением .pub , не перепутайте). Выделяем весь текст, копируем, и вставляем на странице GitHub в поле Key.

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

Работа с репозитарием на GitHub через программу Git

Начиная с этого момента, пляски вокруг web-интерфейса GitHub можно считать законченными. Далее можно работать только используя программу git.

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

После этих настроек, можно заливать свои файлы в репозитарий. Переходим в каталог со своим проектом, и даем команды:

После этих команд на сервере GitHub образуется копии файлов того каталога, в котором были выполнены данные команды. Далее можно уже делать коммиты, заливки на сервер GitHub изменений, считывания изменений с сервера. Но это уже совсем другая история.

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