Вы можете избежать необходимости вводить фразу-пароль, если вы запускаете ssh agent. Когда вы в первый раз делаете git pull, вы делаете это в интерактивном режиме, и ssh agent запомнит ваш закрытый ключ, и вы можете запустить git pull без запроса.
Тим Финер
Ответы:
162
Это не совсем то, что вы просили, но для http (s):
Вы можете поместить пароль в файл .netrc (_netrc в Windows). Оттуда это будет взято автоматически. Он пошел бы в вашу домашнюю папку с 600 разрешениями.
Вы также можете просто клонировать репозиторий, https://user:pass@domain/repoно это не очень рекомендуется, так как он будет показывать вашего пользователя / прохода во многих местах ...
новая опция - использовать помощник по учетным данным . Обратите внимание, что учетные данные будут храниться в виде открытого текста в вашей локальной конфигурации с использованием стандартного помощника учетных данных. Учетные данные помощника с Wincred также могут быть использованы на окнах.
Примеры использования для помощника учетных данных
git config credential.helper store - хранит учетные данные неопределенно долго.
git config credential.helper 'cache --timeout=3600'- магазины на 60 минут
Для доступа по ssh вы должны использовать ssh-агент, который при необходимости предоставит ключ ssh. Это потребует генерации ключей на вашем компьютере, хранения открытого ключа на удаленном сервере и добавления закрытого ключа в соответствующее хранилище ключей.
Можете ли вы рассказать о части SSH? Я настраиваю экземпляр EC2, и я хотел бы, чтобы он извлекал данные без запроса пароля и автомасштабирования AWS. Эта публичная / частная схема выглядит как хорошее решение.
Педро Дуссо
1
@PedroDusso звучит так, как будто вы ищете эту тему
eis
2
я закончил, используя механизм ключей развертывания, который, кажется, является хорошим решением. Спасибо!
Педро Дуссо
129
Я нашел один способ предоставить учетные данные для соединения https в командной строке. Вам просто нужно указать полный URL для git pull и включить туда учетные данные:
Вам не нужно предварительно клонировать хранилище с учетными данными, это означает, что ваши учетные данные не заканчиваются .git/config. (Но убедитесь, что ваша оболочка не предает вас и сохраняет командную строку в файле истории.)
пароль не требуется, и это небезопасно писать пароль таким образом
метеор
разве это не одна из вещей, которые я перечислил в принятом ответе, уже в 2012 году?
эйс
8
@ EIS: Не совсем. Дело в том, что вам не нужно клонировать хранилище с URL-адресом, который включает в себя учетные данные, но все же можно извлечь из URL-адреса с учетными данными. В результате учетные данные не попадают в файл .git / config.
Holgero
5
Если вы пропустите :passwordчасть, вам будет предложено ввести пароль после нажатия Enter. Таким образом, ваш пароль не будет сохранен в истории Bash.
Непосредственно не отвечает на вопрос, но я нашел этот вопрос, когда искал способ, по сути, не вводить пароль повторно каждый раз, когда я подключаюсь к удаленному серверу .
Ну, gitпозволяет вам кэшировать свои учетные данные в течение ограниченного периода времени. Это настраивается в, git configи эта страница объясняет это очень хорошо:
Ниже cmd будет работать, если у нас нет @ в пароле:
git pull https://username:pass@word@mygithost.com/my/repository
если у вас @ в пароле, замените его на% 40, как показано ниже:
git pull https://username:pass%40word@mygithost.com/my/repository
Ответы:
Это не совсем то, что вы просили, но для http (s):
https://user:pass@domain/repo
но это не очень рекомендуется, так как он будет показывать вашего пользователя / прохода во многих местах ...Примеры использования для помощника учетных данных
git config credential.helper store
- хранит учетные данные неопределенно долго.git config credential.helper 'cache --timeout=3600'
- магазины на 60 минутДля доступа по ssh вы должны использовать ssh-агент, который при необходимости предоставит ключ ssh. Это потребует генерации ключей на вашем компьютере, хранения открытого ключа на удаленном сервере и добавления закрытого ключа в соответствующее хранилище ключей.
источник
Я нашел один способ предоставить учетные данные для соединения https в командной строке. Вам просто нужно указать полный URL для git pull и включить туда учетные данные:
Вам не нужно предварительно клонировать хранилище с учетными данными, это означает, что ваши учетные данные не заканчиваются
.git/config
. (Но убедитесь, что ваша оболочка не предает вас и сохраняет командную строку в файле истории.)источник
:password
часть, вам будет предложено ввести пароль после нажатия Enter. Таким образом, ваш пароль не будет сохранен в истории Bash.Непосредственно не отвечает на вопрос, но я нашел этот вопрос, когда искал способ, по сути, не вводить пароль повторно каждый раз, когда я подключаюсь к удаленному серверу .
Ну,
git
позволяет вам кэшировать свои учетные данные в течение ограниченного периода времени. Это настраивается в,git config
и эта страница объясняет это очень хорошо:https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
В терминале запустите:
Чтобы настроить время ожидания кэша, вы можете сделать:
Ваши учетные данные будут храниться в памяти в течение запрошенного периода времени.
источник
Обратите внимание, что способ, которым git credential helper «store» будет хранить незашифрованные пароли, меняется в Git 2.5+ (2 квартал 2014 года).
Смотрите коммит 17c7f4d от Junio C Hamano (
gitster
)Док теперь говорит:
источник
Ниже cmd будет работать, если у нас нет @ в пароле:
git pull https://username:pass@word@mygithost.com/my/repository
если у вас @ в пароле, замените его на% 40, как показано ниже:git pull https://username:pass%40word@mygithost.com/my/repository
источник