Как предоставить кодовую фразу с git fetch/pull в скрипте bash. Мне действительно нужно сделать это в сценарии bash, не используя ssh-add или что-то в этом роде. Возможно ли это?Предоставить кодовую фразу для git в скрипте bash
2
A
ответ
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
Ну, это мое убеждение, что GIT поддерживает HTTP Basic Auth. Поэтому, если вы довольны (не рекомендуется), просто выполните проверку подлинности через HTTPS с URL-адресом формы 'https: // username: password @ hostname/path/to/foo.git'. – 4ae1e1
Вы также можете использовать пустую кодовую фразу, чтобы избежать подсказки парольной фразы - опять же не рекомендуется как небезопасная. – choroba
Я думаю, что лучший способ хранить ключевую фразу - использовать память. Почему вы не хотите использовать агент ssh? – Kadir