- Как указать имя пользователя и пароль при запуске «git clone git@remote.ГИТ»?
- 5 ответов:
- использовать ssh-agent чтобы избежать ввода паролей все время
- выбор между несколькими учетными записями на GitHub(или Heroku или. )
- избегая ssh вообще
- 1. Создайте токен
- 2. Клонировать РЕПО
- 3. Не Оставляйте Следов
- Настройка авторизации в Git
- Git для начинающих. Урок 2. Создание и клонирование репозитория
- Видеоурок. Часть 1. Практика
- Видеоурок. Часть 2
- Конспект урока
- Что такое репозиторий
- Можно ли работать с git локально
- Локальный репозиторий
- Удаленный репозиторий, зачем он нужен
- Что такое клонирование
- Как клонировать готовый проект
- Как клонировать проект в другую папку
- Свой удаленный репозиторий
- Где держать репозиторий
- Как создать репозиторий в github
- Права на репозиторий, публичные и приватные
- Что такое ssh-ключи
- Как сгенерировать ssh-ключ
- Как добавить ssh-ключ в настройках github
- Два способа создания проекта
- Пустой проект
- Непустой проект
- Что могу посоветовать
- Как скопировать ssh-ключи с одной машины на другую
- Ссылки, которые могут пригодиться
Как указать имя пользователя и пароль при запуске «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 . Это, очевидно, риск для безопасности почти для каждого случая использования, но поскольку я планирую удалить РЕПО и отменить токен, когда я закончу, мне все равно.
1. Создайте токен
GitHub есть все руководство ЗДЕСЬ о том, как получить токен, но вот ТЛ;д-р
- на Настройки > Параметры Разработчика > Персональный Доступ Жетоны (вот прямая ссылка)
- Нажмите кнопку «Создать новый токен» и введите пароль еще раз. (hвот еще одна прямая ссылка)
- установите описание / имя для него, проверьте разрешение «РЕПО» и нажмите кнопку «создать токен» в нижней части страницы.
- скопируйте ваш новый токен прежде чем покинуть страницу
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-ключи используются для разграничения доступа к приватным репозиториям.
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/*
Ссылки, которые могут пригодиться
- github — https://github.com/
- bitbucket — https://bitbucket.org/
- подробнее об ssh-ключах (en) — connecting-to-github-with-ssh
На этом все. В следующем уроке мы сделаем первые изменения в проекте и начнем понимать, в чем заключается прелесть git.
Источник