2012-08-30 6 views
-2

내가 SSH를 사용하여 개인 저장소를 복제 포함하는 bash는 스크립트를 쓰고 있어요, 문제는, 그것을 잘
을 작동하지만 bash는 스크립트에서이다 또한 git clone ...로 작성되었지만 오류가 발생합니다.자식 복제 ssh를 REPO가

사용 권한이 거부되었습니다 (publickey). 치명적인 : 원격 종료가 예기치 않게 끊어졌습니다.

문제의 원인은 무엇입니까?

파일 만 포함 된 경우에도

: 당신은 당신의 스크립트 코드를 제공하지 않은 sudo git clone [email protected]:username/Project.git

+1

스크립트를 실행하는 동일한 사용자입니까? 'ssh'는 누구든지 실행하는 개인 키를 사용할 것입니다. – Kevin

+2

'sudo'는 크게 변경됩니다. 어떤 경우에는 그것을 사용하고 있다고 말하며, 어떤 경우에는 그렇지 않다고 말합니다. 일관성있게주의하십시오. 또한 현재 쉘에 TTY가 있는지 여부가 중요합니다 - cron이 호출하는 스크립트입니까? 직접 호출 되었습니까? etc. (또한,'.sh'로 끝나는 bash 스크립트의 이름을 짓는 것은 나쁜 습관이다; http://www.talisman.org/~erlkonig/documents/commandname-extensions-considered-harmful 참조) –

+0

사실 나는 단지'echo $ USER in both' 그리고 그들은 같지 않습니다, 파일에있는 하나는 root입니다. 그래서'sudo bash file.sh'에서'sudo'를 제거하고 괜찮 았지만 root로 파일을 실행해야합니다. 스크립트 안에서 사용자를 바꿀 수 있습니까? 네, 감사합니다. – mabdrabo

답변

0

나는 문제가 무엇인지 알아 냈다. 나는 양쪽 모두에 echo $ USER를 시도했는데 그것들은 동일하지 않았다. 파일의 파일은 루트이므로 sudo bash file.sh에서 sudo를 제거했다.

0

, 그래서 진단하기 어렵다.

그러나 스크립트에서 다를 수있는 것에 대한 몇 가지 생각 : 다른 현재 디렉토리, 다른 환경 변수, 해시 - 뱅 라인 누락, 다른 인터프리터 로딩, 해시 뱅 라인의 다양한 옵션.

+0

.sh 파일에'git clone [email protected] : ... '만 포함 된 경우 동일한 문제가 발생합니다. 파일에 폴더가 있으면 – mabdrabo

관련 문제