2012-02-03 2 views
2

신속한 추가, 커밋 및 푸시 기능을 사용하기 위해 git push에 암호를 푸시하려고하지만 bash 프롬프트에서 암호를 입력하고 입력 할 수 없습니다. 누군가 이것을하는 방법을 알고 있습니까? 나는 암호가 tty 장치에서 직접 읽을 수 있기 때문에Bash 스크립트가 프로그램 프롬프트에 인쇄됩니다.

#!/bin/bash 

PWD='password' 
read MSG 

git add . 
git commit -m '"$MSG"' 

echo "$PWD" | git push | 
+0

당신이 SSH + 개인 키를 통해 자식을 시도 했습니까? 처리 메시지에 대한 – Aif

+1

또 다른 질문 : http://stackoverflow.com/q/4780893/1175253 – Sam

답변

2

SSH을 통해 git를 사용하는 경우, 당신은 암호 파이프 할 수 없습니다 ....이 개 썰매의 단순 확신, 그리고 stdin (그런 일을 저지하기 위해 부분적으로!))). 비밀번호 입력을 정말로 자동화하려면 tty를 제어 할 수있는 expect을 사용해보십시오. expect은 TCL을 사용하지만, 적어도 perl과 python을위한 모듈도 있습니다.

IMO, 더 좋은 해결책은 키 기반 인증을 설정하는 것입니다. 시도하는 것보다 쉽고 안전합니다. http://www.debian-administration.org/articles/530에는 설정 방법에 대한 정보가 있습니다.

+0

감사합니다, 나는이 당겨 추가 및 밀어 내 전체 프로세스를 자동화하는 것입니다하려는 이유. @sehe 및 ssh 키를 기대합니다. 감사합니다. – ehime

1

당신은 이것을 할 수 없습니다.

대신 git가 이미 사용하고있는 ssh를 푸시하고 공개 키 인증을 사용하도록 ssh를 구성하십시오. ssh-agent는 개인 키를 보호하기로 선택하면 암호문을 제공 할 수 있습니다.

은 몇 가지 지침에 대한 github의 자습서를 참조하십시오 http://help.github.com/ssh-key-passphrases/

관련 문제