Linux git clone с авторизацией

Содержание
  1. Как указать имя пользователя и пароль при запуске «git clone git@remote.ГИТ»?
  2. 5 ответов:
  3. использовать ssh-agent чтобы избежать ввода паролей все время
  4. выбор между несколькими учетными записями на GitHub(или Heroku или. )
  5. избегая ssh вообще
  6. 1. Создайте токен
  7. 2. Клонировать РЕПО
  8. 3. Не Оставляйте Следов
  9. Настройка авторизации в Git
  10. Git для начинающих. Урок 2. Создание и клонирование репозитория
  11. Видеоурок. Часть 1. Практика
  12. Видеоурок. Часть 2
  13. Конспект урока
  14. Что такое репозиторий
  15. Можно ли работать с git локально
  16. Локальный репозиторий
  17. Удаленный репозиторий, зачем он нужен
  18. Что такое клонирование
  19. Как клонировать готовый проект
  20. Как клонировать проект в другую папку
  21. Свой удаленный репозиторий
  22. Где держать репозиторий
  23. Как создать репозиторий в github
  24. Права на репозиторий, публичные и приватные
  25. Что такое ssh-ключи
  26. Как сгенерировать ssh-ключ
  27. Как добавить ssh-ключ в настройках github
  28. Два способа создания проекта
  29. Пустой проект
  30. Непустой проект
  31. Что могу посоветовать
  32. Как скопировать ssh-ключи с одной машины на другую
  33. Ссылки, которые могут пригодиться

Как указать имя пользователя и пароль при запуске «git clone git@remote.ГИТ»?

Я знаю, как предоставить имя пользователя и пароль для запроса https следующим образом:

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

но они не работали.

5 ответов:

этот способ работал для меня из репозитория GitHub

редактировать на основе комментария Michael_Scharf:

вы можете оставить пароль, чтобы он не был зарегистрирован в вашем файле истории bash:

он предложит вам ввести пароль

The user@host:path/to/repo формат говорит Git использовать ssh для входа в host С логином user . От git help clone :

альтернативный SCP-подобный синтаксис может также использоваться с протоколом ssh:

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

использовать ssh-agent чтобы избежать ввода паролей все время

если вы не хотите вводить свой пароль ssh все время, типичным решением является создать пару открытого и закрытого ключей, поместите открытый ключ в свой

выбор между несколькими учетными записями на GitHub(или Heroku или. )

если у вас есть несколько учетных записей в таком месте, как GitHub или Heroku, у вас будет несколько ключей ssh (по крайней мере один на учетную запись). Чтобы выбрать учетную запись, в которую вы хотите войти, вам нужно скажите ssh, какой закрытый ключ используйте.

например, предположим, что у вас есть две учетные записи GitHub: foo и bar . Ваш ssh ключ для foo и

/.ssh/foo_github_id и ваш ssh ключ для bar и

/.ssh/bar_github_id . Вы хотите получить доступ git@github.com:foo/foo.git С и git@github.com:bar/bar.git С bar учетная запись. Вы должны добавить следующий код

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

избегая ssh вообще

некоторые службы предоставляют HTTP-доступ в качестве альтернативы ssh:

предупреждение: добавление пароля к URL-адресу клона приведет к тому, что Git сохранит ваш пароль открытого текста в .git/config . Для безопасного хранения пароля, когда используя HTTP, используйте помощник по учетным данным. Например:

вышеизложенное заставит Git запрашивать ваш пароль один раз в 15 минут (по умолчанию). Смотрите git help credentials для сведения.

в комментариях @Bassetassen это ответ, @plosco упомянул, что вы можете использовать git clone https:// @github.com/username/repository.git клонировать из GitHub, по крайней мере. Я думал, что буду расширять о том, как это сделать, в случае, если кто-то столкнется с этим ответом, как я сделал, пытаясь автоматизировать некоторое клонирование.

GitHub есть очень удобно руководство о том, как это сделать, но оно не охватывает, что делать, если вы хотите включить все это в одну строку для целей автоматизации. Он предупреждает, что добавление маркера в URL-адрес клона сохранит его в виде открытого текста в .git/config . Это, очевидно, риск для безопасности почти для каждого случая использования, но поскольку я планирую удалить РЕПО и отменить токен, когда я закончу, мне все равно.

Читайте также:  Изменяем finder mac os

1. Создайте токен

GitHub есть все руководство ЗДЕСЬ о том, как получить токен, но вот ТЛ;д-р

  1. на Настройки > Параметры Разработчика > Персональный Доступ Жетоны (вот прямая ссылка)
  2. Нажмите кнопку «Создать новый токен» и введите пароль еще раз. (hвот еще одна прямая ссылка)
  3. установите описание / имя для него, проверьте разрешение «РЕПО» и нажмите кнопку «создать токен» в нижней части страницы.
  4. скопируйте ваш новый токен прежде чем покинуть страницу

2. Клонировать РЕПО

то же, что и команда @plosco дали, git clone https:// @github.com/ / .git , просто заменить , и С любой вашей информацией.

если вы хотите клонировать его в определенную папку, просто вставить адрес папки в конце вот так: git clone https:// @github.com/ / , где это, как вы уже догадались, папка клонировать его! Вы можете, конечно, использовать . , .. ,

и т. д. здесь, как и в других местах.

3. Не Оставляйте Следов

не все это может быть необходимо, в зависимости от того, насколько чувствительны, что вы делать есть.

  • вы, вероятно, не хотите оставить этот знак висит вокруг если у вас нет намерения использовать его в течение некоторого времени, чтобы вернуться к жетоны страницы и нажмите кнопку Удалить рядом с ним.
  • если вам больше не нужно РЕПО, удалите его rm -rf .
  • Если вам нужно РЕПО снова, но не нужно автоматизировать его снова, вы можете удалить пульт дистанционного управления, сделав git remote remove origin или просто удалите маркер, запустив git remote set-url origin https://github.com/ / .
  • очистите свою историю bash, чтобы убедиться, что токен не остается в журнале. Есть много способов сделать это, см. этот вопрос и этот вопрос. Тем не менее, может быть проще просто добавить все вышеперечисленные команды с пробелом, чтобы предотвратить их сохранение для начала.

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

Источник

Настройка авторизации в Git

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

Вызвано это тем, что я уже несколько раз сталкивался с одной неприятной ситуацией. После смены пароля на корпоративный аккаунт, под которым осуществляется доступ в том числе к Git-репозиторию, и который необходимо менять каждые 3 месяца в соответствии с политикой безопасности, невозможно каким бы то ни было образом взаимодействовать с репозиторием (push, pull, check out и т.п.). Клиент говорит «invalid credentials».

Сегодня столкнулся с подобной ситуацией: не мог склонировать проект, т.к. клиент так же ругался на «invalid credentials».

Поэтому на будущее решил написать коротенькую иструкцию по быстрой настройке авторизации в Git.

Первое, что можно попробовать, это настроить имя пользователя и пароль в глобальном конфигурационном файле .gitconfig , который лежит скорее всего в домашней папке пользователя (у меня на винде это C:/Users/ ). Для этого выполняем следующие две команды:

Посмотрим, как изменилось содержимое файла .gitconfig :

Второй способ я использовал при клонировании. Тут всё ещё проще. Добавим имя пользователя и пароль прямо к URL в команде git clone:

Таким образом информация сохранится в настройках локального репозитория, в файле .git/config :

Также можно настроить имя пользователя с паролем в файле .git/config локального репозитория и командой git config (см. выше). Нужно просто выполнять её, находять в локальном репозитории и без указания параметра —global .

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

Источник

Git для начинающих. Урок 2.
Создание и клонирование репозитория

Видеоурок. Часть 1. Практика

Все о репозиториях

  • что это такое
  • клонирование
  • публичные и приватные репозитории
  • создаем собственный репозиторий
  • Инициализация репозитория
  • Генерируем ssh-ключи
  • что это такое и зачем они нужны
  • генерируем свой ключ
Читайте также:  Виртуальная машина для линукс сервера

Видеоурок. Часть 2

  • Что выбрать: github или bitbucket?
  • Копирование ssh-ключей

Конспект урока

Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.

Что такое репозиторий

Это каталог в файловой системе, где хранится информация о проекте:

  • файлы и папки проекта
  • история проекта
  • настройки проекта
  • служебная информация

Информация о репозитории хранится в скрытой папке .git в корне проекта.

Можно ли работать с git локально

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

Локальный репозиторий

Это репозиторий, который хранится на нашей машине, в рабочей папке проекта. Это та самая скрытая папка .git

Удаленный репозиторий, зачем он нужен

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

Плюсы удаленного репозитория

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

Что такое клонирование

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

Как клонировать готовый проект

В первую очередь, нужно получить ссылку на проект. Мы можем найти ее сами или получим готовую, например, на новой работе. Возьмем для примера репозиторий vuejs — https://github.com/vuejs/vue.git

Наберем в командной строке

При этом в текущем каталоге создастся папка vue, в ней окажутся все файлы проекта vue и специальная скрытая папка .git, то есть сам репозиторий, или информация о нем.

Как клонировать проект в другую папку

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

Где vue-new — нужное название папки.

Свой удаленный репозиторий

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

Где держать репозиторий

Есть множество вариантов, самые известные — это github и bitbucket. Нужно выбирать.

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

Чтобы продолжить уроки, нужно зарегистрироваться на github. Если у вас нет там аккаунта, то форму регистрации увидите сразу на главной странице — https://github.com/

Как создать репозиторий в github

После регистрации создание репозитория доступно с главной страницы github. При создании нужно указать название проекта и тип (публичный или приватный). На остальное пока не обращаем внимания.

Права на репозиторий, публичные и приватные

Есть 2 типа репозиториев:

  • публичный (public), открыт всем
  • приватный (private), доступен только определенному кругу лиц — в первую очередь, нам самим

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

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

Что такое ssh-ключи

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

ssh-ключ не имеет прямого отношения к git, но так репозитории находятся на удаленных серверах, то ssh-ключи используются для разграничения доступа к приватным репозиториям.

Читайте также:  Midnight commander linux ��� ���������

ssh-ключ состоит из пары ключей: публичного и приватного ключа. Это просто 2 текстовых файла:

  • /домашний-каталог/.ssh/id_rsa.pub — публичный
  • /домашний-каталог/.ssh/id_rsa — приватный

Публичный ключ передается сторонним серверам, например, github, для открытия доступа на эти сервера. Приватный ключ хранится только на нашей машине и никому не передается. То есть когда у нас просят ssh-ключ, чтобы дать доступ на какой-нибудь сервер, мы отдаем именно публичный ключ, id_rsa.pub

Как сгенерировать ssh-ключ

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

Если видим файлы id_rsa и id_rsa.pub — отлично, ключи уже есть.

Если этих файлов нет, то нужно сгенерировать ключи утилитой ssh-keygen. В Windows она устанавливается вместе с git, в Linux и MacOS при необходимости установите. В Linux, например, вот так

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

Появились файлы id_rsa и id_rsa.pub — значит, ключи успешно сгенерированы.

known_hosts — это файл, в котором ssh прописывает сервера, на которые мы заходим. При первом подключении к github нужно будет разрешить доступ к github.com (напечатать yes в терминале)

Как добавить ssh-ключ в настройках github

Открываем публичный ключ id_rsa.pub и копируем его содержимое. В настройках github ищем раздел «SSH и GPG keys» — https://github.com/settings/keys. Жмем «New SSH key», задаем название ключа, например, имя, и вставляем форму публичный ключ, прямо текстом. Все, теперь у нас есть доступ к нашим приватным репозиториям.

Два способа создания проекта

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

Второй, когда у нас уже есть проект. Нужно зайти в папку проекта и связать его с уже существующим репозиторием на github. Это называется инициализация.

Рассмотрим оба способа.

Пустой проект

Создаем приватный репозиторий на github, назовем его first-site. Я зарегистрировался под именем Webdevkin, моя ссылка для клонирования будет такая — git@github.com:Webdevkin/first-site.git. Ваша зависит от имени пользователя.

Идем в командную строку и запускаем

В текущей папке получим новую папку с названием first-site — это и есть наш проект.

P.S. У вас склонировать этот репозиторий не получится — он закрытый. Создайте свой 🙂

Непустой проект

Допустим, у нас на локальной машине уже есть проект second-site. Создаем в github репозиторий second-site. Заходим в папку проекта и выполняем команды

Все, можно приступать к работе над проектом. Команды add, commit и push мы разберем в следующих уроках.

Это единственный урок, в котором мы разбирались с тонкостями репозиториев. В дальнейшем будем считать, что репозиторий = проект.

Что могу посоветовать

  • github или bitbucket? Для личных проектов неважно, оба сервиса разрешают бесплатно создавать приватные репозитории. Для open source или резюме — github
  • не увлекайтесь клонированием в папку со своим названием. Есть шанс запутаться, самому или коллегам
  • не путайте публичный и приватный ключи. Отдаем вовне только публичный ключ id_rsa.pub
  • при смене рабочей машины можно не генерировать ssh-ключи заново, а скопировать их со старой машины. Тогда не придется заново прописывать новые ключи на серверах

Немного подробнее о копировании ssh-ключей

Как скопировать ssh-ключи с одной машины на другую

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

  • Скопировать id_rsa и id_rsa.pub со старой машины на новую
  • Посмотреть права на файлы, возможно, ключи окажутся слишком «открытыми» для записи и потребуется сменить им права доступа — sudo chmod 700

/.ssh/*

  • Выполнить команду ssh-add
  • Ссылки, которые могут пригодиться

    • github — https://github.com/
    • bitbucket — https://bitbucket.org/
    • подробнее об ssh-ключах (en) — connecting-to-github-with-ssh

    На этом все. В следующем уроке мы сделаем первые изменения в проекте и начнем понимать, в чем заключается прелесть git.

    Источник

    Оцените статью