2014-03-29 5 views
2

여기에 유사한 질문이 많이 있지만 (이 글을 게시하기 전에 많은 내용을 읽었습니다)이 내용은 다른 내용이므로 나와 함께하시기 바랍니다. 잠시.amazon에 커밋을 푸시 할 때 권한이 거부 됨 (공개 키)

며칠 전 아마존 ec2에서 원격 git 저장소를 구성했습니다. 어려움을 겪은 지 몇 시간 만 지나면 나는 그 파일을 작동 시켜서 push 파일을 만들 수있었습니다. 나는 하루나 이틀 동안 리소스를 아무 문제없이 밀어 넣기 위해 노력했다. (나는 모든 업데이트를 제대로 보았다).

오늘 나는 웬일인지 로컬 컴퓨터에서 아무 것도 할 수 없습니다.

git push deploy 다음과 같은 오류 메시지가 (: git remote show deploy 내가 배포에 대한 정보를 얻으려고 할 때 볼 수있는 것과 동일)로 끝나는

warning: push.default is unset; its implicit value is changing in 
Git 2.0 from 'matching' to 'simple'. To squelch this message 
and maintain the current behavior after the default changes, use: 

    git config --global push.default matching 

To squelch this message and adopt the new behavior now, use: 

    git config --global push.default simple 

See 'git help config' and search for 'push.default' for further information. 
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode 
'current' instead of 'simple' if you sometimes use older versions of Git) 
Permission denied (publickey). 
fatal: Could not read from remote repository. 
Please make sure you have the correct access rights 
and the repository exists. 

그것의 첫 번째 부분 (허락을 거부하기 전에) 나는 이전에 볼 수 있었지만, 그때까지는 여전히 모든 것을 정확하게 밀어 붙이고있었습니다.

배포 내가 분명히 git remote -v로 볼 수 있기 때문에 존재합니다

deploy ssh://[email protected]/home/ubuntu/repo (fetch) 
deploy ssh://[email protected]/home/ubuntu/repo (push) 

I 할 수도 있습니다 내 개인 키가 0400 권한이 내 서버에 제대로 SSH. 두 컴퓨터 모두에 ubuntu 12.04 LTS이 있습니다.

내 공개 키에 문제가있을 수 있으므로 개인 키에서 다시 생성 해 보았습니다 (ssh-keygen -y -f key.pem > key.pub). 그 sha을 기반으로 그것은 내 이전 공개 키와 동일합니다 : sha1sum key_prev.pub = sha1sum key.pub

나는 여전히 서버에 가서 인증 된 키에 새 키를 추가했습니다.

변경 사항 없음. 나는 아무것도 할 수 없다. 아무도 저에게 문제가 무엇이고 왜 일어 났는지 말해 줄 수 있습니까? 내 로컬 .ssh/known_hosts으로 무엇인가를해야합니까? 답변 중 하나 또한

난 다음 발견 :

인스턴스를 다시 시작한 후 있다는 점 유의 하시길 바랍니다 DNS 이름이 변경되었습니다. 나는이 여러 번 떨어졌다. 키 파일은 여전히 ​​유효하지만 "servername"이 변경되었습니다.

실제로 컴퓨터를 다시 시작한 것이므로 관련성이 높습니다. 문제는 내가 지금 무엇을 바꿔야 하는지를 이해할 수 없다는 것입니다.

VonC의 답변을 읽은 후.내가 git config --global push.default simple했을 때

나는 (내가 Permission denied (publickey).있어) ssh [email protected]를 수행하여 서버에 ssh를 수는 없지만, 내가 myAlias이 ~/.ssh/config

Host   myAlias 
Hostname  X.X.X.X 
User   ubuntu 
IdentityFile path/to/mypem/file.pem 

에 정의되어 ssh myAlias,이 작업을 수행 할 수 있습니다

나는 다른이 문제가 발생했을 때 git push deploy :

치명적 : 현재 분기 마스터에는 업스트림 브랜치가 없습니다. 현재 분기를 밀어 상류 원격 설정,

자식 푸시 --set-상류

마스터에게 배포 사용하려면 내가 ssh -Tvv [email protected]을하려고하고 어떻게되는지 알려드립니다.

+0

'Permission denied'이 생기면 인스턴스의'/ var/log/auth.log'에서 생성 된 로그는 무엇입니까? – clement

+0

@ clement89 여기 꼬리의 출력. 'timestamp username CRON [31495] : pam_unix (cron : 세션) : 사용자 root에 의해 (uid = 0)에 의해 열린 세션 타임 스탬프 사용자 이름 CRON [31495] : pam_unix (cron : 세션) : 사용자 root가 세션을 닫습니다. –

답변

2

우선, 오류의 첫 번째 부분을 보지 않으려면 git config --global push.default simple을 입력하십시오.

두 번째로 ssh [email protected]으로 성공적으로 로그인 할 수 있으면 키와 인스턴스 이름이 모두 양호합니다.

이 경우 할 수 없습니다, 당신은 할 수 있습니다

  • ssh -Tvv [email protected] 하나 무슨 일이 일어나고 있는지보고 시도하고
  • 이되는지 확인합니다 (/usr/sbin/sshd -d) 서버, stopping sshd에 가서 디버그 모드에서 다시 시작하여 : 그것은 단지 하나의 ssh 연결을받을 것입니다. 클라이언트로부터 ssh ubuntu @ XXXX를 시도하면 sshd 응답이 보일 것입니다.
    그런 다음 sshd을 정상적으로 다시 시작하십시오. 귀하의 경우에는

, 당신은 당신의 키는 하나의 표준이 아니기 때문에, ~/.ssh/config에 정의 된 별명을 사용하는이 .

원활하게 진행하려면 git push -u deploy master을 수행하십시오.

git remote -v 이후 반환 : 당신 있습니다하지는 SSH 별칭을 사용하는 것을 의미

deploy ssh://[email protected]/home/ubuntu/repo (fetch) 
deploy ssh://[email protected]/home/ubuntu/repo (push) 

.

유형 : (: 되찾기 경로 다음에 myAlias: 구문은 중요하다)

그리고 다시 git push 시도

git remote set-url deploy myAlias:/home/ubuntu/repo 

.

+0

'ssh -Tvv myAlias'가 올바르게 작동하면'git push -u deploy master'는 허가가 거부 된 상태에서 같은 오류를 발생시킵니다. –

+0

이것은 놀랍습니다.이 문제는 완전히 해결되었습니다. 고맙습니다. 왜 당신의 마법이 효과가 있는지 설명해 주시겠습니까? 문제는 이전에'git push '로 모든 것을 할 수 있었기 때문입니다. –

+1

@SalvadorDali 당신이'~/.ssh/config'를 원한다면 ssh url은 (http://stackoverflow.com/a/14423667/6309에서와 같이) scp 문법을 사용해야합니다. http://stackoverflow.com/a/20596571/6309. – VonC

관련 문제