2015-12-08 1 views
2

Как предоставить кодовую фразу с git fetch/pull в скрипте bash. Мне действительно нужно сделать это в сценарии bash, не используя ssh-add или что-то в этом роде. Возможно ли это?Предоставить кодовую фразу для git в скрипте bash

+0

Ну, это мое убеждение, что GIT поддерживает HTTP Basic Auth. Поэтому, если вы довольны (не рекомендуется), просто выполните проверку подлинности через HTTPS с URL-адресом формы 'https: // username: password @ hostname/path/to/foo.git'. – 4ae1e1

+0

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

+0

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

ответ

2

I судимого SSH-агент и решение с SSH_ASKPASS, но ничего не получалось, то я нашел решение, используя http://expect.sourceforge.net/

Примера (выполненный в оболочке):

pass="passwod" 
/usr/bin/expect <<EOD 
spawn git fetch origin $BRANCH 
expect "Enter passphrase for key '/home/$USERNAME/.ssh/id_rsa': " 
send "$pass\r" 
expect eof 
EOD 
+0

Это работало прекрасно для меня. В моем примере использования выполняется git pull в настройке CI для предприятия, которая не очень гибкая, поэтому мне нужно предоставить ключевую фразу в интерфейсе/скрипте CI. – sofly