Linux git не вводить пароль

Как я могу выполнить «git pull» без повторного ввода пароля SSH?

можно ли настроить git/ssh поэтому мне не нужно вводить пароль каждый раз, когда я хочу выполнить git pull ? Обратите внимание, что РЕПО является частным на github.

или, альтернативно, какой была бы лучшая практика для автоматизации развертывания кода из частного репозитория Github?

дополнительная информация: экземпляр EC2 с открытым AMI на основе Fedora.

5 ответов

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

Я тоже! К счастью, есть отличный маленький инструмент под названием ssh-agent Это может безопасно сохранить вашу парольную фразу, поэтому у вас нет чтобы снова войти в него. Если вы находитесь на OSX Leopard или более поздней версии, ваши ключи могут быть сохраненный в keychain системы для того чтобы сделать ваше жизнь еще проще. Наиболее установки linux автоматически запустят ssh-agent для вас, когда вы входите.

Я включил кэширование паролей, как описано здесь:

кэшировать пароль в течение месяца:

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

чтобы решить проблему, мне пришлось создать файл под названием

/.ssh/config и добавить строку:

/.ssh/my_key2_rsa — Это мой ключ.

Я не знаю, почему никто еще не сообщил об этом. Но самым простым подходом было бы просто добавить одну строку AddKeysToAgent yes на верхней части.файл SSH/config файл. Конечно!—1—> должно быть запущено заранее. Если он не работает ( проверьте командой ssh-agent на терминале), затем просто запустите его eval $(ssh-agent)

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

git config credential.helper store

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

Источник

ГИТ запрашивает имя пользователя каждый раз, когда я нажимаю

всякий раз, когда я пытаюсь нажать на мое РЕПО, git запрашивает оба username & password .

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

Итак, как я могу настроить git так, чтобы он не запрашивал username в каждом git push .

Я новичок в linux, но IIRC в windows git push запрашивает только пароль.

15 ответов

Edit (by @dk14, как предложено модераторами и комментариями)

предупреждение: Если вы используете credential.helper store из ответа ваш пароль будет храниться полностью незашифрованным («как есть») в

/.git-credentials . Пожалуйста, обратитесь к комментариям ниже или ответам из раздела «связанный», особенно если ваш работодатель имеет нулевую терпимость к вопросам безопасности.

обоснование: подход, описанный в ответе, может ввести крупный уязвимость, особенно для предприятий, работающих с частными финансовыми данными. В сочетании с незначительными проблемами безопасности (часто присутствующими в таких) или минимальной социальной инженерии это позволяет захватить большинство учетных данных в сети проекта, как местоположение «голого» пароля известно заранее. Это, возможно, включает учетные данные, дающие частичный доступ к производственной среде, поэтому де-факто повышающие права доступа [внутреннего] злоумышленника и позволяющие скрыть личность хакера некоторым степень.

в качестве примечания (чтобы расширить это предупреждение на примере), несколько крупных корпоративных проектов, похоже, имеют эту проблему, несмотря на обеспечение безопасных виртуальных сред для сотрудников. В основном мое обращение, чтобы избавиться от https auth был отклонен на этом основании, но в то время я не думал, что подвиг (например, cat

/git.credentials | curl . ) может быть введен во вспомогательные скрипты bash/build, размещенные на Git, чтобы распространить его среди пользователей, возможно, даже анонимно (поскольку некоторые из них автоматически синхронизированный.) Справедливости ради, этот хак обычно не будет (по крайней мере) напрямую предоставлять доступ к критическим системам. Если Git-credentials === corporate-email-credentials .

даже если принято, он не отвечает на фактический вопрос OP о пропуске только имени пользователя (не пароля). Для читателей с этой точной проблемой @grawity’s ответ может пригодиться.

оригинальный ответ (от @Alexander Чжу):

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

также я предлагаю вам прочитать
$ git help credentials

вы можете сделать это в .git/config файл вашего локального репозитория. Этот файл содержит раздел под названием «удаленный» с записью под названием «url». Запись » url » должна содержать https-ссылку репозитория, о котором вы говорите.

когда вы префикс хост ‘url’ с вашим именем пользователя, git больше не будем спрашивать ваше имя пользователя. Вот пример:

постоянная аутентификация с репозиториями Git

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

использовать также следует указать кэширование истекает

после включения кэширования учетных данных, он будет кэшироваться для 7200 секунд (2 часа).

читать учетные данные Docs

Если вы используете https вместо ssh, вы можете редактировать » url » в .git/config Как говорит user701648, но если вы хотите, вы можете добавить также пароль:

самый простой способ, который я нашел, был с этой командой:

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

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

вы можете установить свое имя пользователя для всех репозиториев на данном сайте, поместив что-то вроде следующего в файл конфигурации Git. Вы захотите измениться»https://example.com » и » me » к фактическому URL и вашему фактическому имени пользователя.

(это непосредственно из «Git help credentials»)

добавить новые ключи SSH, как описано в эта статья о GitHub.

Если Git по-прежнему запрашивает имя пользователя и пароль, попробуйте изменить https://github.com/ to git@github.com: в удаленном URL:

убедитесь, что вы используете SSH вместо http. Проверка этой так ответь.

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

изменение работы клонированного РЕПО:

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

Если вы используете SSH версия, у вас не будет никаких проблем с паролями.Только один раз вы генерируете SSH ключ, чтобы сказать git, что этой ПК будет работать с этой учетная запись github и никогда не спрашивайте меня снова о любом доступе (для этого ПК).

самый простой способ создать

/.netrc файл со следующим содержимым:

вы даже можете закрыть разрешения на этот файл, чтобы никто не мог прочитать ваш пароль, введя:

$ git config учетные данные.вспомогательный магазин

затем введите имя пользователя и пароль.

когда я только git pull, git pull origin xxx, git запрашивает как имя пользователя, так и пароль.

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

Источник

Git постоянно просит у меня пароль

Я уже некоторое время пользуюсь Git, но постоянные запросы на ввод пароля приводят меня в движение.

Я использую Mac OS X и GitHub, и я настроил Git и мои SSH-ключи в соответствии с инструкциями на странице GitHub Set Up Git .

Я также добавил ключ github SSH в свою цепочку ключей Mac OS X, как упоминалось на странице парольных фраз ключа GitHub . Мой открытый ключ зарегистрирован в Git.

Тем не менее, каждый раз, когда я пытаюсь Git pull, мне приходится вводить свое имя пользователя и пароль. Есть ли что-то кроме ключа SSH, который мне нужно настроить для этого?

Я думаю, что у вас неправильный URL Git-репозитория.

Откройте .git/config и найдите раздел [remote «origin»]. Убедитесь, что вы используете SSH:

Вы можете увидеть SSH URL на главной странице вашего репозитория, если вы нажмете Clone или загрузите и выберите ssh .

И НЕ тот https или git один:

Теперь вы можете проверить с помощью только ключа SSH вместо имени пользователя и пароля.

Если Git жалуется ‘origin’ has already been added , откройте .config файл и отредактируйте url = «. » часть после того, [remote origin] как url = ssh://github/username/repo.git

То же самое касается других услуг. Убедитесь, что адрес выглядит так: protocol://something@url

Например, .git/config для Azure DevOps:

Настройка credential.helper

На OS X (теперь macOS), запустите это в Терминале :

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

Для Windows используйте:

Поиск проблемы

Если помощник по учетным данным Git настроен правильно, macOS сохраняет фразу-пароль в цепочке для ключей. Иногда связь между SSH и парольными фразами, хранящимися в цепочке для ключей, может разорваться. Запустите ssh-add -K или, ssh-add

/.ssh/id_rsa чтобы снова добавить ключ в связку ключей.

macOS v10.12 (Sierra) меняется на SSH

Для macOS v10.12 (Sierra) ssh-add -K необходимо запускать после каждой перезагрузки. Чтобы избежать этого, создавайте

/.ssh/config с этим контентом.

Со ssh_config man страницы 10.12.2:

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

Apple добавила Technote 2449, который объясняет, что произошло.

До macOS Sierra отображало ssh диалоговое окно с запросом вашей парольной фразы и предлагало сохранить ее в цепочке для ключей. Этот интерфейс был объявлен устаревшим некоторое время назад и был удален.

Это случилось со мной, когда я обновил MacOS до версии 10.12 (Sierra). Похоже, агент SSH был очищен при обновлении.

Просто бег ssh-add обнаружил мою существующую личность. Я ввел пароль, и было хорошо, чтобы пойти снова.

Используйте это: замените github.com на соответствующее имя хоста

Как уже говорили другие, вы можете установить помощник кеша паролей. Я просто хотел опубликовать ссылку для других платформ, а не только для Mac. Я использую сервер Linux, и это было полезно: кэширование вашего пароля GitHub в Git

Также ищите, кто спрашивает вас о парольной фразе. Это Git или ваш агент SSH?

В моем случае каждый раз, когда я делал git pull это, он спрашивал меня:

Enter passphrase for key ‘/work/username/.ssh/id_rsa’:

Итак, я предположил, что это Git просит пароль. Поэтому я продолжал искать решения, но потом понял, что мой агент SSH отключился. Который может быть исправлен с помощью eval $(ssh-agent) и ssh-add как указано здесь.

Также ниже приведен небольшой фрагмент, который вы можете добавить в свой

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

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

Примечание. Хотя это удобно, Git будет хранить ваши учетные данные в виде открытого текста в локальном файле (.git-credentials) в каталоге вашего проекта (см. Ниже каталог «home»). Если вам это не нравится, удалите этот файл и переключитесь на использование опции кеша.

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

Чтобы хранить пароли в .git-credentials в вашем каталоге% HOME%, а не в каталоге проекта: используйте флаг —global

Руководство по Git в Windows и GitHub с использованием SSH для push / pull: Иллюстрированное руководство по Git в Windows

  1. Скачайте и установите PuTTY
  2. Установить переменную окружения ‘GIT_SSH’ = ‘path \ to \ plink.exe’ (в папке с установленной замазкой) — очень важно .
  3. Перезапустите Windows Explorer, чтобы переменные среды вступили в силу (нельзя перезапустить только командную строку)
  4. Запустите puttygen.exe для создания нового ключа, скопируйте открытый ключ на сайт GitHub
  5. Сохраните этот новый закрытый ключ где-нибудь в безопасности на диске (предпочтительно не Dropbox )
  6. Запустите putty.exe и подключите SSH к github.co
  7. Быстро попасть в папку автозагрузки, запустив «shell: startup».
  8. Запустите свой закрытый ключ с Windows через Pageant. Создайте ярлык в папке автозагрузки с синтаксисом «путь \ к \ pageant.exe», «путь \ к \ частному ключу»
  9. Нам не нужно устанавливать параметр «puttykeyfile» внутри .git / config наших репозиториев
  10. Очень важно , что «URL-адрес клонирования SSH» GitHub используется, а не HTTPS.

В Windows для Git 1.7.9+ выполните следующую команду в командной строке, чтобы открыть файл конфигурации в текстовом редакторе:

Затем в файле добавьте следующий блок, если его нет, или измените его соответствующим образом:

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

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

Я использовал его для Bitbucket и GitHub, он работает для обоих. Единственное, что вам нужно сделать, 3600 это в считанные секунды. Увеличьте его до любой степени, которую вы хотите. Я поменял его на 259200 который около 30 дней. Таким образом, я повторяю свой пароль каждые 30 дней или около того.

Источник

Как избежать указания имени пользователя и пароля при каждом нажатии git?

Я git push моя работа в удаленном репозитории Git.

push предложит мне ввести username и password . Я хотел бы избежать этого для каждого толчка, но как настроить, чтобы этого избежать?

18 ответов:

1. Сгенерировать ключ SSH

Linux / Mac

откройте терминал для создания ssh ключей:

Для Windows

(работает только в том случае, если программа фиксации способна использовать сертификаты/закрытые и открытые ключи ssh)

  1. используйте Putty Gen для создания ключа
  2. экспорт ключа в виде открытого ключа SSH

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

2. Свяжите ключ SSH с удаленным репозиторием

этот шаг зависит от настройки пульта дистанционного управления.

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

/.ssh/id_rsa.pub в поле «Ключ».

если ваш репозиторий управляется кем-то другим, дайте администратор ваш id_rsa.pub .

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

3. Установите удаленный URL-адрес в форму, которая поддерживает SSH 1

если вы выполнили описанные выше действия и все еще получаете запрос пароля, убедитесь, что Ваш URL-адрес РЕПО находится в форме

чтобы увидеть URL вашего РЕПО, выполните:

вы можете изменить URL-адрес:

[1] в этом разделе содержится ответ от Эрик Р

постоянная аутентификация с помощью репозиториев Git,

выполните следующую команду, чтобы включить кэширование учетных данных.

использовать также следует указать срок действия кэширования истекает,

после включения кэширования учетных данных, он будет кэшироваться для 7200 секунд (2 часа).

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

если вы уже настроили ключи SSH и все еще получаете запрос пароля, убедитесь, что Ваш URL-адрес РЕПО находится в форме

чтобы увидеть URL вашего РЕПО, выполните:

вы можете изменить URL с помощью git remote set-url вот так:

просто использовать —repo опция для команды git push. Вот так:

Сохранение На Неопределенный Срок

можно использовать git-credential-store через

использование этого помощника будет хранить ваши пароли в незашифрованном виде на диске, защищенном только разрешениями файловой системы. Если это неприемлемый компромисс безопасности, попробуйте git-credential-cache или найдите помощника, который интегрируется с безопасным хранилищем, предоставляемым вашей операционной системой система.

с таймаутом

использовать git-credential-cache который по умолчанию хранит пароль в течение 15 минут.

чтобы установить другой тайм-аут, используйте —timeout (здесь 5 минут)

Безопасное Сохранение На Неопределенный Срок (OS X и Windows)

  • если вы используете Mac, Git поставляется с режим»osxkeychain», который кэширует учетные данные в безопасный брелок, который прикреплен к вашей учетной записи системы. Этот метод сохраняет учетные данные на диске, и они никогда не истекают, но они зашифрованы с той же системой, которая хранит сертификаты HTTPS и автозаполнения Safari.
  • если вы используете Windows, вы можете установите помощник под названием » Git Credential Manager for Windows.» это похоже на описанный выше помощник «osxkeychain», но использует хранилище учетных данных Windows для управления конфиденциальной информацией. Это может быть найдено по адресуhttps://github.com/Microsoft/Git-Credential-Manager-for-Windows. [подчеркивает мое]

я использовал https ссылку ( https://github.com/org/repo.git ) вместо ссылки ssh;

переключение решило проблему для меня!

подключите Git-клиент к хранилищу учетных данных ОС. Например, в Windows вы привязываете помощник учетных данных к wincred:

я использовал ответ, который предложил Павел, и это сработало для меня. Моя разница заключалась в том, чтобы сделать это, пока я добавлял пульт так: git remote add (alias) https://(name:password)@github.com/(the remote address).git

в операционной системе Windows используйте это вместо этого, это работает для меня:

  1. щелкните правой кнопкой мыши на директории, чтобы нажать и выбрать «Git Bash Here».
  2. ssh-keygen -t rsa (нажмите Enter для всех значений)
  3. Проверьте терминала: Your public key has been saved in /c/Users/ /.ssh/id_rsa.pub
  4. копировать открытый ключ из указанного файла.
  5. перейдите в свой профиль GitHub = > настройки = > SSH и GPG ключи = > новый SSH ключ = > вставьте свой SSH ключ там = > сохранить

просто хотел указать что-то о решении, сказанном выше несколько раз:

вы можете использовать любую команду, которая требует после этого пароль. Тебе не нужно давить. (вы также можете вытащить, например) после этого вам не нужно будет снова вводить свое имя пользователя / пароль.

все это возникает из-за того, что git не предоставляет опцию в командах clone/pull/push/fetch для отправки учетных данных через канал. Хотя это дает верительные грамоты.помощник, он хранит в файловой системе или создает демон и т. д. Часто учетные данные GIT являются системными, и ответственность за их безопасность лежит на приложении, вызывающем команды git. Очень небезопасно.

вот что мне пришлось обойти. 1. Версия Git (git —version) должна быть больше или равна 1.8.3.

GIT CLONE

для клонирования, с помощью «ЖКТ URL-адрес клонировать» после изменения URL-адреса из формата, в HTTP://<мой_логин>@/ в http:/ / : @ /

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

очистка

теперь, это пошло бы и

  1. написал пароль в git remote происхождение. Введите «git remote-v», чтобы увидеть повреждения. Исправьте это, установив URL-адрес удаленного источника без пароля. «git remote set_url origin http:/ / @ / «
  2. записал пароль .git / logs в репозитории. Замените все экземпляры pwd с помощью команды unix, такой как find .git / logs-exec sed-i ‘s / / / g’ <> \; Здесь — это URL-адрес с паролем. Поскольку URL-адрес имеет косую черту, он должен быть экранирован двумя обратные косые черты. Например, для URL http://kris:passs123@192.168.0.1/proj.ГИТ -> http:\\/\\/kris:passs123@192.168.0.1\\/proj.ГИТ

Если ваше приложение использует Java для выполнения этих команд, используйте ProcessBuilder вместо Runtime. Если необходимо использовать Runtime, используйте getRunTime ().exec, который принимает массив строк в качестве аргументов с /bin / bash и-c в качестве аргументов, а не тот, который принимает одну строку в качестве аргумента.

GIT FETCH / PULL / PUSH

  1. Установить пароль на удаленного git URL-адреса как : «удаленный set_url ГИТ происхождения адресу http://<мой_логин>:@/«
  2. введите команду git fetch/push / pull. Вы не будет предложено ввести пароль.
  3. выполните очистку, как в предыдущем разделе. Не пропустите его.

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

The —push флаг гарантирует, что это изменяет URL репозитория для только. (Вопрос, заданный в исходном сообщении, касается только. Требуется имя пользователя + пароль только для операций push-это нормальная настройка для общественные репозитории на GitHub . Обратите внимание, что частная репозитории на GitHub также потребуют имя пользователя+пароль для операций извлечения и извлечения, поэтому для частного репозитория вы не захотите использовать —push flag . )

предупреждение: это по своей сути небезопасно, потому что:

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

любой, кто получает доступ к вашему компьютеру, может просмотреть ваш пароль с помощью git remote show origin .

вот почему использование ключа SSH является принятым ответом.

даже ключ SSH-это не совсем безопасно. Любой, кто получает доступ к вашему компьютеру, может, например, сделать толчки, которые разрушают ваш репозиторий или, что еще хуже, push — коммиты, вносящие тонкие изменения в ваш код. (Все нажатые коммиты, очевидно, хорошо видны на GitHub. Но если кто-то хотел изменить ваш код тайно, они могли —amend предыдущая фиксация без изменения сообщения фиксации, а затем принудительно нажмите ее. Это было бы незаметно и довольно трудно заметить на практике.)

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

как вариант — для простоты и безопасность — вы можете поставить только ваше имя пользователя в URL, так что вам придется вводить пароль каждый раз, когда вы git push но вам не придется давать свое имя пользователя каждый раз. (Мне очень нравится этот подход, вводя пароль дает мне паузу, чтобы думать каждый раз, когда я git push , так что я не могу git push случайно.)

вы должны настроить SSH закрытый ключ, вы можете просмотреть это страница, Как сделать установку на Mac, Если вы находитесь на linux руководство должно быть почти то же самое, на Windows вам понадобится инструмент, как MSYS.

создайте SSH-ключи в своей системе linux, используя следующую команду

Он будет запрашивать пароль и имя файла (по умолчанию

после создания файлов добавьте открытый ключ id_rsa.паб в раздел ssh учетной записи github.

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

Теперь добавить git@github.com:user_name/repo_name.git удаленного URL-адреса на локальный репозиторий Git, используя следующую команду.

похоже, что, по крайней мере, при использовании TortoiseGIT в Windows, можно создать ключи SSH и передать их на сервер GIT, используя просто:

Я создал пустое РЕПО в github, а затем .

вы должны настроить удаленный URL ssh, как описано выше.

запуск команды ниже решил проблему для меня.

пожалуйста, обратитесь к приведенной ниже документации github:

Источник

Читайте также:  What is windows dep
Оцените статью