Як ввести команду з паролем для git pull?


140

Я хочу виконати цю команду в одному рядку:

git pull && [my passphrase]

Як це зробити?


ви можете змінити свою парольну фразу на порожню, дотримуючись цього: help.github.com/articles/working-with-ssh-key-passphrases
квітня 12

1
Якщо ви запускаєте ssh-агент, ви можете увімкнути необхідність введення парольної фрази. Перший раз, коли ви робите git pull, ви робите це інтерактивно, і ssh агент запам'ятає ваш приватний ключ, і ви можете запускати git pull, не вимагаючи.
Тім Фінер

Відповіді:


162

Це не саме те, що ви просили, але для http (s):

  • ви можете помістити пароль у файл .netrc (_netrc у Windows). Звідти його підбирали автоматично. Він переходитиме до вашої домашньої папки з 600 дозволами.
  • Ви також можете просто клонувати репо, https://user:pass@domain/repoале це не дуже рекомендується, оскільки це показало б вашому користувачу / проходу у багатьох місцях ...
  • новий варіант - використовувати помічник довіри . Зауважте, що облікові дані зберігатимуться у чіткому тексті у вашій локальній конфігурації, використовуючи стандартний помічник даних. Акредитив-помічник з wincred також можна використовувати на windows.

Приклади використання помічників для довіри

  • git config credential.helper store - зберігає облікові дані безстроково.
  • git config credential.helper 'cache --timeout=3600'- магазини протягом 60 хвилин

Для доступу на основі ssh ви використовуєте агент ssh, який надасть ключ ssh, коли це необхідно. Для цього знадобиться генерувати ключі на вашому комп’ютері, зберігати відкритий ключ на віддаленому сервері та додавати приватний ключ до відповідної сховища ключів.


1
Чи можете ви детальніше розповісти про частину SSH? Я налаштовую екземпляр EC2, і я хотів би, щоб він витягнув, не вимагаючи свого пароля та автоматичної шкали AWS. Ця державна / приватна схема виглядає як вдале рішення.
Педро Дуссо

1
@PedroDusso звучить як цю тема є те , що ви після
EIS

2
Я закінчив використовувати механізм ключів розгортання, який, здається, є хорошим рішенням. Дякую!
Педро Дуссо

129

Я знайшов один спосіб надати облікові дані для з'єднання https у командному рядку. Вам просто потрібно вказати повну URL-адресу, щоб отримати доступ і включити в неї облікові дані:

git pull https://username:password@mygithost.com/my/repository

Вам не потрібно раніше клонувати репозиторій з обліковими записами, це означає, що ваші облікові дані не закінчуються .git/config. (Але переконайтеся, що ваша оболонка не зраджує вас, і зберігає командний рядок у файлі історії.)


пароль не потрібен, і писати пароль таким чином
невірно

Хіба це не одне з речей, які я вказав у прийнятій відповіді, вже у 2012 році?
eis

8
@eis: Не зовсім так. Справа в тому, що вам не потрібно клонувати сховище URL-адресою, яка включає в себе облікові дані, але все одно ви можете витягнути з URL-адреси за допомогою облікових даних. Ефект полягає в тому, що облікові дані не закінчуються у файлі .git / config.
holgero

5
Якщо ви пропустите :passwordчастину, вам буде запропоновано ввести пароль після натискання клавіші Enter. Таким чином, ваш пароль не буде збережено в історії баш.
Маттіаш Фішер

1
Так @PramodGarg використання - git pull ім'я користувача: password@mygithost.com/my/repository.git Відділення
PAVITRA

39

Не відповідає безпосередньо на питання, але я знайшов це питання під час пошуку шляху, в основному, не вводити пароль кожен раз, коли я перетягую на віддалений сервер .

Що ж, gitдозволяє кешувати свої облікові дані протягом певного часу. Це налаштовується в, git configі ця сторінка це дуже добре пояснює:

https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

У терміналі запустіть:

$ git config --global credential.helper cache
# Set git to use the credential memory cache

Щоб налаштувати тайм-аут кешу, ви можете:

$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

Потім ваші облікові дані будуть зберігатися в пам'яті протягом потрібного часу.


5

Зауважте, що спосіб "зберігати" помічник облікових даних git буде зберігати незашифровані паролі допомогою Git 2.5+ (Q2 2014).
Див фіксації 17c7f4d з допомогою Junio C Hamano ( gitster)

credential-xdg

Налаштуйте зразок " store" допоміжного помічника вхідних даних, щоб відзначити місця розташування файлів конфігурації XDG, коли зазначено.

Документ зараз каже:

Якщо не вказано:

  • буде проведено пошук облікових даних з ~/.git-credentialsі $XDG_CONFIG_HOME/git/credentialsта
  • облікові дані записуються, ~/.git-credentialsякщо вони існують, або $XDG_CONFIG_HOME/git/credentialsякщо вони існують, а перші - ні.

0

Нижче cmd буде працювати, якщо у нас немає @ пароля: git pull https://username:pass@word@mygithost.com/my/repository Якщо у вас @ пароль, замініть його на% 40, як показано нижче: git pull https://username:pass%40word@mygithost.com/my/repository

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.