CentOS đang bỏ qua khóa công khai của tôi


8

Tôi đang cố gắng kết nối với máy chủ CentOS của riêng mình bằng SSH; Tôi có thể kết nối tốt với một mật khẩu; Tôi đang cố gắng kết nối với khóa chung của mình, nhưng máy chủ không thử xác thực khóa chung. Tôi đã làm theo tất cả các hướng dẫn trên trang này trong wiki CentOS và đã xác minh những điều sau:

  • Tôi đang chạy CentOS 6.0 trở lên

  • Sshd_config của tôi có các mục sau:

    PermitRootLogin no
    PubkeyAuthentication Yes
    RSAAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
  • Tôi đã tạo một khóa riêng trong thư mục .ssh / trong thư mục chính của mình trên máy khách

  • Toàn bộ văn bản của khóa chung (được tạo bởi ssh-keygen) chiếm một dòng trong tệp .ssh / ủy quyền trong thư mục chính của tôi trên máy chủ.
  • Tôi có các chế độ cấp phép sau được đặt trên cả máy khách và máy chủ:

    chmod 700 .ssh
    chmod 600 .ssh/*
    

Câu trả lời:


13

Theo báo cáo vấn đề này trên trang web của CentOS, điều này được gây ra bởi một "tính năng" ngược dòng trong SELinux; nếu SELinux thi hành, nó sẽ ngăn máy chủ sử dụng xác thực pubkey. Không có dấu hiệu cho thấy hành vi này sẽ thay đổi trong tương lai gần. Để xem vấn đề này có áp dụng cho bạn hay không, hãy nhập sestatusvà xem nếu nó báo cáo "Chế độ hiện tại" là enforcing.

Tôi biết hai cách giải quyết.

  • Bạn có thể đặt SELinux ở chế độ cho phép. Nhập setenforce 0để thay đổi chính sách ngay lập tức, sau đó mở /etc/selinux/configvà đảm bảo SELINUX=permissive.
  • Khôi phục tệp vào bối cảnh bảo mật chính xác:

    restorecon -R -v ~$USER/.ssh
    

Đây thực sự là vấn đề?
Andy Shinn

Đó là, mặc dù sysadmin của tôi sau đó đã nói với tôi rằng Selinux không nên chạy ở nơi đầu tiên.
ILikeFood
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.