Tại sao không đăng nhập tự động thông qua ssh với ủy quyền_key hoạt động?


12

Tôi đã tạo ra một khóa riêng tư / công khai. Tôi đã đặt khóa công khai trên máy chủ

~/.ssh/authorized_keys

Mọi thứ được thiết lập giống như máy chủ khác của tôi, nhưng có vẻ như máy chủ chỉ đang bỏ qua những nỗ lực của tôi.


Kiểm tra /etc/ssh/ssh_config/etc/ssh/sshd_configđể xác minh rằng không có gì bạn muốn bị vô hiệu hóa.
Kristopher Johnson

Bạn cũng sẽ muốn kiểm tra sshd_config.
Vagnerr

Cảm ơn. Tôi đã cập nhật câu trả lời (mà ban đầu chỉ đề cập đến ssh_config).
Kristopher Johnson

Tất cả các cuộc thảo luận ở trên là hoàn hảo cho nếu bạn đang sử dụng kiểu ssh. Nếu hệ thống của bạn đang sử dụng ssh2 thì nó có một cách hoàn toàn khác để quản lý khóa. Bài viết này thảo luận về các hows và whats. burnz.wordpress.com/2007/12/14/ từ
chris

1
Thông thường, việc kiểm tra /var/log/auth.logtrên các hệ thống Debian hoặc /var/log/securetrên các hệ thống RedHat sẽ cho bạn một lời khuyên rõ ràng về những gì bị nhầm lẫn (thường là các vấn đề về quyền)
Giovanni Toraldo

Câu trả lời:


15

Mặc dù vấn đề của bạn có thể đã được giải quyết bằng các câu trả lời khác, tôi đã tự khóa mình khỏi đủ số máy không xác thực các thay đổi sshd_config trước khi đăng xuất, vì vậy đã đưa ra quy trình dưới đây có thể hữu ích cho việc gỡ lỗi thay đổi cấu hình sshd trong tương lai:

KHÔNG KHÁM PHÁ một kết nối ssh hoạt động cho đến khi kiểm tra SAU đã xác minh hành vi như bạn mong đợi.

a. xác minh những gì bạn nghĩ rằng sshd được cho là đang làm

b. xác minh cấu hình hợp lệ bằng cách sử dụng "-t"

c. bắt đầu phiên bản 'thử nghiệm' dài dòng của máy chủ mà bạn có thể theo dõi trực tiếp

d. bắt đầu một kết nối máy khách 'thử nghiệm' dài dòng mà bạn có thể theo dõi trực tiếp


a. xác minh những gì bạn nghĩ rằng sshd được cho là đang làm

Xem lại tệp cấu hình sshd mà không cần tất cả các bình luận với nội dung như bên dưới (giả sử sshd_config là tệp chính xác và trong / etc / ssh)

$ grep -v "^ #" / etc / ssh / sshd_config | grep -v "^ $"

Điều này chỉ xóa mọi thứ để chúng tôi xác minh những gì chúng tôi nghĩ rằng chúng tôi đang thay đổi (không nhất thiết là liệu nó có đúng hay không.)

b. xác minh cấu hình hợp lệ bằng cách sử dụng "-t"

Từ trang người đàn ông của sshd tôi đang sử dụng,

-t Chế độ kiểm tra. Chỉ kiểm tra tính hợp lệ của tệp cấu hình và độ chính xác của các phím. Điều này hữu ích để cập nhật sshd một cách đáng tin cậy vì các tùy chọn cấu hình có thể thay đổi.

Những thay đổi khác có thể có hoàn cảnh tinh tế hơn. Ví dụ: không tắt xác thực mật khẩu cho đến khi bạn chắc chắn rằng xác thực khóa chung hoạt động chính xác.

c. bắt đầu phiên bản 'thử nghiệm' dài dòng của máy chủ mà bạn có thể theo dõi trực tiếp

$ sudo / usr / sbin / sshd -ddd -p 9999

Điều này giữ cho phiên làm việc hiện tại của bạn hoạt động, nhưng cung cấp cho bạn một phiên bản sshd khác để xác minh các thay đổi cấu hình mới của bạn. SSHD hiện đang chạy ở nền trước tới một cổng do người dùng xác định (ví dụ 9999 trong ví dụ của chúng tôi.) Và đẩy rất nhiều thông tin gỡ lỗi ồn ào mà bạn có thể theo dõi trong / var / log / authlog (hoặc có thể /var/log/auth.log tùy thuộc trên hệ điều hành của bạn.)

d. bắt đầu một kết nối máy khách 'thử nghiệm' dài dòng mà bạn có thể theo dõi trực tiếp

Chạy kết nối máy khách ssh ở chế độ dài dòng để hiển thị trên màn hình của bạn nhiều thông tin hơn có thể khiến bạn gỡ lỗi tốt hơn.

$ ssh -vvv -p 9999 tên máy chủ

Bây giờ bạn sẽ có đủ thông tin trong tệp nhật ký của máy chủ hoặc màn hình kết nối của máy khách để cách ly vấn đề của bạn.

Giải pháp thường đi xuống quyền truy cập tệp (như được hiển thị bởi Magnar và setatakahashi)

May mắn nhất


Tôi đoán bạn cũng nên kiểm tra tệp ssh_config ở đầu máy khách để đảm bảo nó đang làm những gì bạn mong đợi. Sử dụng một cái gì đó như dưới đây để grep out bình luận:> grep -v "^ #" / etc / ssh / ssh_config | grep -v "^ $"
samt

Vâng, cấu hình ssh của máy khách có thể được sửa bất cứ lúc nào, đó là máy chủ bạn bị khóa nếu bạn cấu hình sai.
Soviero

33

Máy chủ sẽ bỏ qua tệp ủy quyền của bạn nếu thuộc tính chủ sở hữu sai. Thay đổi nó để sửa nó:

chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys

6
ssh -vvv -l tên người dùng server.domain sẽ cho bạn biết nếu bạn gửi khóa hợp lệ
Dave Cheney

Đôi khi tôi thấy sshd phàn nàn về các quyền xấu trong thư mục chính - vì vậy tôi đã thêm "chmod o-rwx ~" (hoặc ít nhất là "chmod ow ~") vào danh sách như setatakahashi đã làm. Điều này thường trở nên rõ ràng khi logfile được theo dõi - các thông báo lỗi tôi thấy ở đó luôn luôn chỉ đúng hướng.
Olaf

Câu trả lời này có vẻ có khả năng nhất, nhưng nhận xét của Dave Cheney là cách duy nhất để xem điều gì đang thực sự xảy ra. Ngoài ra kiểm tra nhật ký máy chủ.
dwc

Đây là vấn đề của tôi. Tôi đập đầu vào đây hàng giờ. Cám ơn rất nhiều!
Sam Soffes

1
Điều này đã lừa, nhưng quyền trước đây của tôi là 07750644tương ứng. Tại sao giảm quyền giúp đỡ? Đây có phải là một biện pháp phòng ngừa an ninh được cấu hình ở đâu đó?
Trưởng khoa

11

$ chmod 700 ~

$ chmod 700 ~ / .ssh

$ chmod 600 ~ / .ssh / ủy quyền

Kiểm tra các thuộc tính này trong / etc / ssh / sshd_config

$ sudo grep PubkeyThiết lập / etc / ssh / sshd_config

$ sudo grep Giao thức / etc / ssh / sshd_config


2
Điểm tuyệt vời về ~, bạn phải đảm bảo rằng không ai khác ngoài chính bạn có thể viết vào thư mục nhà của bạn, nếu không họ có thể đổi tên thư mục ~ / .ssh của bạn
Dave Cheney

chmod cuối cùng nên là: $ chmod 600 ~/.ssh/authorized_keyskhông$ chmod 600 ~/.sHh/authorized_keys
SooDesuNe

3
các giá trị thuộc tính nên là gì?
Michael

0

Một cạm bẫy quan trọng khác ..

Nếu thư mục chính của bạn được mã hóa, sshd sẽ không có quyền truy cập vào ~ / .ssh / ủy quyền

Xem câu trả lời này

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.