Как использовать ожидаемый и мерзкий клон? - PullRequest
3 голосов
/ 30 июня 2011

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

Я пытаюсь что-то вроде:

ожидаем -c 'спондерский пользователь git clone @ . . *. *: /вар /.../ repository.git /;ожидать "(да / нет)?";отправить "да \ n";ожидать "пароль:";отправить "my_password \ n"; взаимодействовать "

Но это не работает.Что я делаю неправильно?Как я могу исправить командную строку выше?

Спасибо, Аршавдки Александр

Ответы [ 2 ]

3 голосов
/ 31 августа 2016

Вы можете избежать использования ожидаемого, введя пароль непосредственно в URL-адресе

git clone https://username:password@github.com/username/repository.git

Обратите внимание - это приводит к тому, что ваш пароль хранится в файлах .git, что делает этот параметр небезопасным.

Однако вы можете не указывать пароль:

git clone https://username@github.com/username/repository.git

git попросит вас ввести пароль, и он не будет сохранен ни в .git / config, ни в вашемистория bash

3 голосов
/ 30 июня 2011

Почему бы вам просто не использовать что-то более безопасное, чем пароль, и упростить свою жизнь?

Ключ ssh без пароля будет значительно более безопасным и не будет запрашивать вообще.

Если он должен быть на 100% самодостаточным, подумайте над тем, чтобы скрипт выдал SSH-ключ, используйте его один раз, а затем удалите. (Это должно оставить вашу ситуацию с безопасностью без изменений: пароль в сценарии, что приемлемо для вас).

# Output SSH key for no-password login. (Could use mktemp instead)
cat > /tmp/ssh_key.$$ <<EOT
-----BEGIN RSA PRIVATE KEY-----
blahblahblah
-----END RSA PRIVATE KEY-----
EOT

# Make a SSH wrapper to do the right thing
cat > /tmp/git_ssh.$$ <<EOT
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /tmp/ssh_key.$$ "$@"
EOT
chmod +x /tmp/git_ssh.$$
export GIT_SSH=/tmp/git_ssh.$$

# Done!
git clone user@host:path/to/repo

# Cleanup
rm -f /tmp/git_ssh.$$ /tmp/ssh_key.$$

Да, скрипт выглядит громоздким, но (по модулю ошибок) он самодостаточен и очень полезен для автоматизации.

...