2012-12-09 26 views
7

Tôi đang cố gắng kết nối với Máy chủ CentOS 6.3 bằng Khóa SSH để tôi có thể chạy tập lệnh từ xa mà không yêu cầu mật khẩu mọi lúc. Tôi đã theo các hướng dẫn sau đây:Kết nối với máy chủ CentOS từ xa bằng cách sử dụng Khóa SSH

  1. Đăng nhập vào máy chủ bằng cách sử dụng lệnh ssh bình thường và mật khẩu một thời gian để máy chủ cho biết thêm máy tính của bạn để đội chủ nhà biết
  2. Trong máy tính của bạn sử dụng Cygwin-thiết bị đầu cuối tạo ra các phím và rời khỏi cụm từ mật khẩu trống: ssh-keygen -t rsa
  3. Bây giờ thiết lập quyền truy cập vào chìa khóa và ssh tin của bạn thư mục: chmod 700 ~/.ssh & chmod 600 ~/.ssh/id_rsa
  4. Sao chép khóa công khai (id_rsa.pub) đến máy chủ, đăng nhập vào máy chủ và thêm khóa công khai vào danh sách authorized_keys : cat id_rsa.pub >> ~/.ssh/authorized_keys
  5. Khi bạn đã nhập khóa công khai, bạn có thể xóa nó khỏi máy chủ. Thiết lập quyền tập tin trên máy chủ: chmod 700 ~/.ssh & chmod 600 ~/.ssh/authorized_keys
  6. Retart daemon ssh trên máy chủ: service sshd restart
  7. Kiểm tra các kết nối từ máy tính của bạn: ssh [email protected]

Nhưng khi tôi cố gắng để ssh vào máy chủ từ xa nó vẫn là hỏi tôi mật khẩu. Thư mục .ssh không được tạo trên máy chủ nên tôi phải tự tạo. Bất kỳ ý tưởng về những gì có thể xảy ra? tôi đã bỏ lỡ một cái gì đó? Có cách nào khác để thiết lập khóa không?

+1

khi bạn tham khảo ~, bạn đang nói về người dùng nào? Ngoài ra, khởi động lại sshd là không cần thiết để thay đổi khóa ... – Blaskovicz

+0

@guillermog vui lòng lưu ý định dạng trong các câu hỏi trong tương lai của bạn. Nó phải được rõ ràng và dễ đọc, khác chỉ là một bức tường của văn bản và một tắt. – Siddharth

+0

@Blaskovicz Tôi đang sử dụng người dùng root. – guillermog

Trả lời

3

Vâng nó quay ra tôi đã ngớ ngẩn thay đổi chủ sở hữu của thư mục /root khi tôi đã thành lập vì vậy đây là nơi mà thư mục /.ssh dành cho người dùng mà tôi đang cố gắng đăng nhập với (root) nó đã từ chối truy cập vào thư mục đó bởi vì nó thuộc về một người dùng khác.

Dec 10 16:25:49 thyme sshd[9121]: Authentication refused: bad ownership or modes for directory /root 

Tôi đã thay đổi chủ sở hữu trở về thư mục gốc và đã làm điều đó.

chown root /root 

Cảm ơn các bạn đã giúp bạn.

4

Dường như đây là số bug đã biết. Các giải pháp đề nghị không thực sự làm việc, nhưng tôi thấy rằng điều này sẽ trên 6,2 hệ thống CentOS tại nơi làm việc:

chmod 600 .ssh/authorized_keys 
chmod 700 .ssh 
+0

Đã cố gắng nhưng vẫn không có may mắn. – guillermog

1

Althogh OP đã tìm thấy giải pháp, tôi muốn ghi lại giải pháp của mình về vấn đề tương tự với hy vọng rằng nó sẽ hữu ích cho những người google vấn đề tương tự và đạt được câu trả lời này.

Lý do của sự cố của tôi là thư mục .ssh trong thư mục chính của người dùng trên máy chủ CentOS không được đặt chế độ thích hợp sau khi được tạo bởi lệnh useradd.

Bên cạnh đó, tôi cần phải tự thiết lập chế độ thư mục .ssh bằng lệnh sau:

chmod g-w /home/user

chmod 700 /home/user/.ssh

chmod 600 /home/user/.ssh/authorized_keys

+0

mục chính cho tôi là 'chmod g-w/home/user' – djangodude

1

câu trả lời khác mang tính tổng quát, lưu ý rằng Centos 6 sử dụng selinux .selinux có thể từ chối truy cập đến tập tin authorised_keys bất chấp quyền chính xác và sở hữu

Từ những vấn đề được biết đến trong Centos 6 Release Notes:

  • Hãy chắc chắn rằng bạn thiết lập một cách chính xác bối cảnh selinux của khóa công khai nếu bạn chuyển nó đến một máy chủ CentOS 6 với selinux kích hoạt. Nếu không, selinux có thể cấm truy cập vào tệp ~/.ssh/authorized_keys và do đó, xác thực khóa sẽ không hoạt động. Để thiết lập bối cảnh đúng bạn có thể sử dụng:

    restorecon -R -v /home/user/.ssh

  • ssh-copy-id từ CentOS 6 nhận thức được bối cảnh selinux và cách giải quyết trước là không cần thiết.