2013-07-16 2 views
33

Mac OSX Lion 10.7.호스트를 알고있는 호스트 목록에 추가하지 못했습니다.

이상한 환경 (homebrew는 wget을 설치하지 않았고 모든 종류의 이상한 블록과 오류가 있음)을 해결하기 위해 zschrc와 자작 (homebrew)과 다른 것들을 제거한 다음 물고기 셸을 설치했습니다.

이제

내가 밀어하려고 할 때마다 GitHub의에서, 나는이 오류에 /,/당기 :.

The authenticity of host 'github.com (204.232.175.90)' can't be established. 
RSA key fingerprint is <string of colon-separated chars that I should probs keep private>. 
Are you sure you want to continue connecting (yes/no)? yes 
Failed to add the host to the list of known hosts (/Users/sasha/.ssh/known_hosts). 

그래서 난 내 ~/SSH 폴더의 권한을 확인하기 위해 시도하고,이를 가지고있는 나에게 잘 보이는 :

-rw-r--r-- 1 sasha staff 97B Jul 9 22:56 config 
-rw------- 1 sasha staff 1.7K May 16 2012 id_rsa 
-rw-r--r-- 1 sasha staff 403B May 16 2012 id_rsa.pub 
drwx------ 5 sasha staff 170B Jul 15 09:56 known_hosts 

모든 것을에서 known_hosts에있어 내가 ssh'ing에 사용되는 PEM 파일입니다합니다 (로도 "진위는 ..."프롬프트) 아마존 EC2 인스턴스에, 내가 id_rsa_gsg_keypair를 복사 및 시도하지만 id_rsa.pub 상황이 절망적 일 때.

어떤 일이 벌어지고 있는지 알 수 있습니까? 나는 이것을 푸는 것을 좋아할 것이다. 그래서 나는 푸시/풀을 여러 번 반복하지 않는다.

편집 나는 성공적으로 얼마 전에 these instructions을 따라, 그래서 ssh를 -T [email protected]을 실행할 때, 나는

를 얻을 수 있도록, 내가 Github에서 내 SSH 키를해야합니까, 그들이 인식하고
Hi sashafklein! You've successfully authenticated, but GitHub does not provide shell access. 

내 ssh를 상황에 불만의 독점적 내 지역 컴퓨터가 될 것으로 보인다.

답변

14

known_hosts가 디렉토리가 아닌 플랫 파일이 아니어야합니까?

문제가되지 않는다면 Github의 this page이 도움이 될 수 있습니다. SSH를 -v 또는 -vv 플래그와 함께 사용하면 자세한 오류 메시지를 볼 수 있습니다. 무엇이 실패했는지 더 잘 알 수 있습니다.

+0

이상한. 내가 기억할 수는 없지만 나는 그것을 디렉토리로 바꾸어야 만했을 것이다. 이동/이름 바꾸기로 모든 것이 수정되었습니다. 감사! – Sasha

77

구체적인 경우 known_hosts은 폴더이므로 먼저 제거해야합니다.

비슷한 문제가 발생한 다른 사용자의 경우 ~/ssh/known_hosts이 다른 사용자 (예 : root)의 소유 일 수 있으므로 올바른 사용 권한을 확인하십시오. 따라서 다음을 실행하려고 시도 할 수 있습니다.

sudo chown -v $USER ~/.ssh/known_hosts 

해결할 수 있습니다.

우분투들에 대한
+3

여전히 오류가 발생했습니다 :'알려진 호스트 목록에 호스트를 추가하지 못했습니다 (/Users/igorganapolsky/.ssh/known_hosts) .' –

+0

그룹을 $ USER로 변경하거나'-rw-r -r을 남겨 두어야합니까? - 1 $ USER 루트'? – Suncatcher

+0

@Suncatcher Group은 제 생각에는 문제가되지 않지만 시도해 볼 수는 있습니다. – kenorb

22

,이 오류가있는 경우 :

Failed to add the host to the list of known hosts

그런 다음 단순히 known_hosts 파일을 삭제하고 SSH를 다시 ​​실행합니다. 이렇게하면 적절한 사용 권한을 사용하여 known_host 파일을 다시 생성하고 ssh로 연결하려는 원격 호스트를이 파일에 추가합니다.

+0

내 ssh를 다시 실행하는 방법? – Maviles

+0

도 OSX에서 작업했습니다. – Pimentoso

10

OP의 질문은 ~/.ssh/known_hosts (파일이 아닌 폴더)를 삭제하면 해결할 수 있다고 생각합니다.

-r--------. 1 user user 396 Jan 7 11:12 /home/user/.ssh/known_hosts

그래서 내가 소유자/사용자 PLUS 쓰기를 추가하여이 문제를 해결 :하지만 다른의이 문제가 발생 될 수있는 사람을 위해, 내 서버 중 하나가 이상한 권한 (400)를 한 것으로 나타났습니다.

chmod u+w ~/.ssh/known_hosts

따라서. ~/.ssh/known_hosts는 플랫 파일이어야하며 사용자가 소유해야하며 읽고 읽고 쓸 수 있어야합니다.

known_hosts 파산을 선언하고 삭제하고 계속 정상적으로 작업 할 수 있으며 모든 작업 (git/ssh)에 연결하면 잘 작동하는 known_hosts가 다시 생성됩니다.

+1

내 시스템 (복원 후)에서 파일은 root에 의해 소유되었습니다 ...'chown user.user ~/.ssh/known_hosts'가이를 수정했습니다. – Paolo

+0

웃긴다. 나는이 똑같은 어리석은 문제를 어떻게 대면 했는가? 'chmod u + w'는이 문제를 해결했습니다. 몇 가지 잘못된 안전 스크립트가 있어야합니다 ... – gluk47

2

그것은 허락 된 권한 때문에 간단하게 나에게 일어났습니다. 사용자가 해당 파일에 대한 읽기 또는 쓰기 권한이 없습니다. 수정 권한이

2

좋아 너무 이상적인 권한 ssh를 디렉토리를 들어이
과 같이 문제를 해결 (당신은 ls -ld ~/.ssh/를 입력하여이를 얻을 수 있습니다)
drwx------ 2 oroborus oroborus 4096 Nov 28 12:05 /home/oroborus/.ssh/

d는 디렉토리를 의미 RWX 사용자 oroborus 쓰기를 읽기 및 의미 실행 권한. 여기 oroborus가 내 컴퓨터 이름이고, $ USER을 에코하여 찾을 수 있습니다. 두 번째 오보 오르 스는 실제로 그룹입니다. 각 필드의 의미에 대한 자세한 내용은 here을 참조하십시오. 당신이 우분투/osx 또는 리눅스 배포판에서 작업 할 경우 다시 접하게 될 것이기 때문에 이것을 배우는 것이 매우 중요합니다.

지금과 같은 사용자의 권한 보이게하기 위해, 당신은 단지 읽기 의미 비슷한 논리에 의해 6을 디코딩 할 수, 이진
sudo chmod 700 ~/.ssh

7 1 개 쓰기 (1)을 읽고 (1) 실행 의미 (111)입니다 입력해야 쓰기 권한

사용자에게 쓰기 및 읽기 권한을 부여했습니다. 파일 사용 권한이 다음과 같은지 확인하십시오.

total 20 
-rw------- 1 oroborus oroborus 418 Nov 8 2014 authorized_keys 
-rw------- 1 oroborus oroborus 34 Oct 19 14:25 config 
-rw------- 1 oroborus oroborus 1679 Nov 15 2015 id_rsa 
-rw------- 1 oroborus oroborus 418 Nov 15 2015 id_rsa.pub 
-rw-r--r-- 1 oroborus root  222 Nov 28 12:12 known_hosts 

모든 파일에 대해 여기에 사용자에게 읽기/쓰기 권한을 부여했습니다. ls -l ~/.ssh/

이 문제는 ssh가 해당 폴더의 known_hosts 파일에 쓰려고하기 때문에 발생합니다. 충분한 권한이 없다는 것을 알고 있으면 쓰기 작업을하는 동안 해당 파일에 기록하지 않으므로 실패합니다. 이것은이 문제에 대한 나의 이해이며, 더 많은 지식을 가진 사람들이 이것에 대해 더 많은 것을 밝힐 수 있습니다. 희망 하시겠습니까?

0

"ssh"키를 다시 생성하고 내 git 계정에 추가했습니다. 이것은 나를 위해 일했다.

은 "SSH 키"를 생성하기 위해 다음 명령을 찾아주세요 :

$ ssh-keygen -t rsa -b 4096 -C "[email protected]"

은 ->이 레이블로 제공된 이메일을 사용하여 새 SSH 키를 생성한다.

Generating public/private rsa key pair.

-> 당신이하라는 메시지가 표시되면 "키를 저장할 파일을 입력하고"Enter 키를 누릅니다. 기본 파일 위치를 허용합니다.

Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]

-> 프롬프트에서 보안 암호를 입력합니다.

$ sudo cat /root/.ssh/id_rsa-pub

희망이 작동 : 키를 복사,> 키가 생성 - 자세한 내용은 "Working with SSH key passphrases"

Enter passphrase (empty for no passphrase): [Type a passphrase]

Enter same passphrase again: [Type passphrase again]

볼!

0

이 명령은 나를 위해 일한, @kenorb에서 언급 한 바와 같이

sudo chown -v $USER ~/.ssh/known_hosts

.

현재 사용자의 권한이 깨져 오류가 발생했습니다.

관련 문제