2013-07-16 45 views
33

Mac OSX Lion 10.7.Không thể thêm máy chủ lưu trữ vào danh sách máy chủ biết

Trong nỗ lực giải quyết các vấn đề môi trường kỳ lạ (homebrew không cài đặt wget, và tôi có tất cả các khối và lỗi lạ), tôi đã gỡ cài đặt zschrc và homebrew và một loạt các thứ khác, sau đó cài đặt vỏ cá.

Bây giờ, bất cứ khi nào tôi cố gắng đẩy/kéo đến/từ github, tôi nhận được lỗi này:.

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). 

Vì vậy, tôi đã cố gắng để kiểm tra các điều khoản của ~/thư mục ssh của tôi, và nhận được điều này, mà có vẻ tốt đẹp với tôi:

-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 

Tất cả những gì là trong known_hosts là một tập tin pem tôi sử dụng cho ssh'ing (cũng với "tính xác thực ..." dấu nhắc) đến một thể hiện eC2 của Amazon, mặc dù tôi đã cố gắng sao chép id_rsa và id_rsa.pub ở đó khi mọi thứ trở nên tuyệt vọng.

Bất kỳ ý tưởng gì đang xảy ra? Tôi rất muốn sửa lỗi này vì vậy tôi không được nhắc nhở nhiều lần tôi đẩy/kéo.

EDIT Tôi đi theo these instructions thành công trong một thời gian trước đây, vì vậy tôi không có phím ssh của tôi trên Github, và họ đang được công nhận, để khi tôi chạy ssh -T [email protected], tôi nhận được

Hi sashafklein! You've successfully authenticated, but GitHub does not provide shell access. 

Có vẻ như độc quyền máy tính địa phương không hài lòng với tình huống ssh của tôi.

Trả lời

14

Các tệp known_hosts không phải là tệp phẳng, không phải là thư mục?

Nếu đó không phải là vấn đề, thì this page trên Github có thể giúp bạn. Hãy thử sử dụng SSH với cờ -v hoặc -vv để xem các thông báo lỗi tiết. Nó có thể cung cấp cho bạn một ý tưởng tốt hơn về những gì không thành công.

+0

Lạ. Tôi đoán tôi phải biến nó thành một thư mục, mặc dù tôi không thể nhớ khi nào. Di chuyển/đổi tên nó đã sửa mọi thứ. Cảm ơn! – Sasha

77

Trong trường hợp cụ thể của bạn, known_hosts là một thư mục, vì vậy bạn cần phải xóa nó trước tiên.

Đối với những người khác gặp sự cố tương tự, vui lòng kiểm tra quyền phù hợp của bạn ~/ssh/known_hosts vì nó có thể được sở hữu bởi người dùng khác (ví dụ: root). Vì vậy, bạn có thể thử chạy:

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

để khắc phục.

+3

Vẫn gặp lỗi: 'Không thể thêm máy chủ vào danh sách các máy chủ đã biết (/Users/igorganapolsky/.ssh/known_hosts) .' –

+0

Nếu một người thay đổi cũng phải nhóm thành $ USER hoặc để lại' -rw-r - r - 1 $ USER root'? – Suncatcher

+0

@Suncatcher Group không quan trọng tôi nghĩ, nhưng bạn có thể thử. – kenorb

22

Đối với chàng trai trên Ubuntu, nếu bạn nhận được lỗi này:

Failed to add the host to the list of known hosts

Sau đó, bạn chỉ cần xóa tập tin known_hosts, và chạy lại ssh của bạn. Thao tác này sẽ tạo lại tệp known_host với các quyền thích hợp và thêm máy chủ từ xa mà bạn đang cố gắng chuyển vào tệp này.

+0

làm thế nào để chạy lại ssh của tôi? – Maviles

+0

cũng hoạt động trên OSX. – Pimentoso

10

Tôi nghĩ câu hỏi của OP được giải quyết bằng cách xóa ~/.ssh/known_hosts (một thư mục chứ không phải tệp). Nhưng đối với nhân khác, những người có thể gặp phải vấn đề này, tôi nhận thấy rằng một trong những máy chủ của tôi đã cho phép lạ (400):

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

Vì vậy, tôi đã giải quyết điều này bằng cách thêm chủ sở hữu/sử dụng PLUS viết.

chmod u+w ~/.ssh/known_hosts

Do đó. ~/.ssh/known_hosts cần phải là tệp phẳng và phải do bạn sở hữu và bạn cần có khả năng đọc và ghi.

Bạn luôn có thể tuyên bố phá sản known_hosts, xóa nó và tiếp tục làm mọi thứ như bình thường và kết nối với mọi thứ (git/ssh) sẽ tạo lại một máy chủ mới được biết.

+1

Trong hệ thống của tôi (sau khi khôi phục) tệp được sở hữu bởi root ... 'user.user chown/knowns/known_hosts' đã sửa lỗi đó. – Paolo

+0

Vui nhộn. Tôi đã đối mặt với vấn đề khá ngu ngốc này. 'chmod u + w' đã khắc phục sự cố. Phải là một số tập lệnh an toàn bị lỗi… – gluk47

2

Điều đó xảy ra với tôi đơn giản chỉ vì các quyền bị hỏng. Người dùng của tôi không có quyền đọc hoặc ghi quyền truy cập vào tệp đó. quyền sửa chữa khắc phục vấn đề

2

Okay quyền nên lý tưởng giống như
này Đối với thư mục ssh (Bạn có thể có được điều này bằng cách gõ ls -ld ~/.ssh/)
drwx------ 2 oroborus oroborus 4096 Nov 28 12:05 /home/oroborus/.ssh/

d nghĩa là thư mục, rwx nghĩa là oroborus dùng đã đọc viết và thực thi quyền. Ở đây oroborus là tên máy tính của tôi, bạn có thể tìm thấy tên của bạn bằng cách lặp lại $ USER. Các oroborus thứ hai thực sự là nhóm. Bạn có thể đọc thêm về mỗi trường có nghĩa là gì here. Điều rất quan trọng để tìm hiểu điều này bởi vì nếu bạn đang làm việc trên ubuntu/osx hoặc bất kỳ cơ hội distro Linux nào bạn sẽ gặp lại nó.

Bây giờ để làm cho cái nhìn cho phép của bạn như thế này, bạn cần phải gõ
sudo chmod 700 ~/.ssh

7 trong hệ nhị phân là 111 có nghĩa là đọc 1 ghi 1 và thực hiện 1, bạn có thể giải mã 6 bằng logic tương tự có nghĩa là chỉ Read- viết quyền

Bạn đã cấp cho người dùng của mình quyền ghi và thực thi. Đảm bảo quyền của tệp của bạn trông như thế này.

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 

Bạn đã cấp quyền đọc ghi vào đây cho tất cả các tệp ở đây. Bạn có thể thấy điều này bằng cách nhập ls -l ~/.ssh/

Vấn đề này xảy ra vì ssh là chương trình đang cố ghi vào tệp có tên known_hosts trong thư mục của nó. Trong khi viết nếu nó biết rằng nó không có đủ quyền, nó sẽ không viết trong tập tin đó và do đó thất bại. Đây là sự hiểu biết của tôi về vấn đề này, nhiều người hiểu biết hơn có thể ném thêm ánh sáng vào điều này. Hy vọng điều này sẽ giúp

0

Tôi đã tạo lại khóa "ssh" và thêm vào tài khoản git của mình. Điều này làm việc cho tôi.

hãy tìm các lệnh sau đây để tạo ra "ssh-key":

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

-> Điều này tạo ra một chìa khóa ssh mới, sử dụng email được cung cấp như một nhãn.

Generating public/private rsa key pair.

-> Khi bạn được nhắc "Nhập một file trong đó để lưu khóa," nhấn Enter. Điều này chấp nhận vị trí tệp mặc định.

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

-> Tại dấu nhắc, gõ cụm từ mật khẩu an toàn.Để biết thêm thông tin, xem "Working with SSH key passphrases"

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

Enter same passphrase again: [Type passphrase again]

-> Khoá của bạn được tạo ra, sao chép chìa khóa:

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

Hope làm việc này!

0

Lệnh này làm việc cho tôi,

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

như đã đề cập bởi @kenorb.

Lỗi xảy ra do các quyền bị hỏng, đối với người dùng hiện tại.

Các vấn đề liên quan