Когда я клонирую репо с помощью git clone https: //username@domain.com/directory или когда я нажимаю на него с помощью git push origin master
Git запрашивает у меня пароль, как я могу автоматически предоставить пароль, например, ключи ssh? Чтобы он больше не запрашивал мой пароль?
Мне это нужно по двум причинам:
1) автоматизация, хадсон например
2) Мне лень каждый раз предоставлять самому
Второй вопрос (он связан с первым)
Почему они иногда дважды спрашивают пароль?
Нет ничего лучше агента SSH для http, поэтому вы должны указать пароль в открытом виде. Вы можете сохранить учетные данные в ~/.netrc
:
touch ~/.netrc
chmod 600 ~/.netrc
cat > ~/.netrc <<EOF
machine domain.com
login USERNAME
password SUPERSECRET
EOF
Обратите внимание, что пароль сохраняется там в виде открытого текста. Это менее безопасно, чем использование зашифрованных ключей SSH и агента ssh, но дело сделано. Вы в основном находитесь на том же уровне безопасности, что и Subversion по умолчанию в большинстве систем.
Обратите внимание, что более новые версии Git (> 1.7.0) лучше кэшируют введенные учетные данные, поэтому вам нужно будет ввести пароль только один раз, если вы не используете .netrc
.