it-swarm-vi.tech

Không thể xác thực khóa công khai SSH để hoạt động

Máy chủ của tôi đang chạy CentOS 5.3. Tôi đang dùng Mac chạy Leopard. Tôi không biết ai chịu trách nhiệm cho việc này:

Tôi có thể đăng nhập vào máy chủ của mình tốt thông qua xác thực mật khẩu. Tôi đã trải qua tất cả các bước để thiết lập PKA (như được mô tả tại http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-ssh-beyondshell.html ), nhưng khi tôi sử dụng SSH, nó từ chối thậm chí thử xác minh khóa công khai. Sử dụng lệnh

ssh -vvv [email protected]

(trong đó -vvv nâng mức độ chi tiết lên mức tối đa) Tôi nhận được kết quả đầu ra có liên quan sau:

debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password

theo sau là một lời nhắc cho mật khẩu của tôi. Nếu tôi cố gắng buộc vấn đề với

ssh -vvv -o PreferredAuthentications=publickey [email protected]

Tôi có

debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred publickey
debug3: authmethod_lookup publickey
debug3: No more authentication methods to try.

Vì vậy, mặc dù máy chủ cho biết họ chấp nhận phương thức xác thực khóa công khai và ứng dụng khách SSH của tôi nhấn mạnh vào nó, tôi đã từ chối. (Lưu ý sự vắng mặt dễ thấy của dòng "Cung cấp khóa công khai:" ở trên.) Bạn có đề xuất nào không?

41
Trey Parkman

Kiểm tra xem máy Centos của bạn có:

RSAAuthentication yes
PubkeyAuthentication yes

trong sshd_config

và đảm bảo rằng bạn có sự cho phép thích hợp trên thư mục ~/.ssh/của máy centos.

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/*

nên làm thủ thuật.

44
pyhimys

Tôi gặp vấn đề tương tự - PC từ xa không thể sử dụng xác thực khóa chung để đăng nhập vào máy chủ CentOs 6. Vấn đề trong trường hợp của tôi là liên quan đến SELinux - thư mục chính của người dùng đang cố gắng đăng nhập có thông báo bối cảnh bảo mật. Tôi đã giải quyết vấn đề này bằng cách sử dụng công cụ restorecon:

restorecon -Rv /home
17
Gareth

1- kiểm tra/etc/ssh/sshd_config, đảm bảo bạn có

[.__.] RSAAuthentication có [.__

2- kiểm tra nhật ký an toàn từ máy từ xa, tra cứu nhật ký lỗi sshd daemon. ví dụ. trong Ubuntu của tôi

[.__.] # grep 'sshd'/var/log/safe | grep 'Xác thực bị từ chối' | đuôi -5 [.__.] 4 tháng 8 06:20:22 xxx sshd [16860]: Xác thực bị từ chối: quyền sở hữu hoặc chế độ xấu cho thư mục /home/xxx[.__.[Aug 4 06:20:22 xxx sshd [16860 ]: Xác thực bị từ chối: quyền sở hữu hoặc chế độ xấu cho thư mục /home/xxx[.__.[Aug 4 06:21:21 xxx sshd [17028]: Xác thực bị từ chối: quyền sở hữu hoặc chế độ xấu cho thư mục /home/xxx[.__. ] Ngày 4 tháng 8 06:21:21 xxx sshd [17028]: Xác thực bị từ chối: quyền sở hữu hoặc chế độ xấu cho thư mục /home/xxx[.__.[Aug 4 06:27:39 xxx sshd [20362]: Xác thực bị từ chối: quyền sở hữu xấu hoặc các chế độ cho thư mục /home/xxx[.__.]

Sau đó kiểm tra quyền sở hữu và chế độ cho thư mục/home/xxx, có thể bạn cần chạy cái này

[.__.] chmod 755 /home/xxx[.__.]
13
Jinyu Liu

Kiểm tra kỹ xem các quyền của bạn có đúng không và cấu trúc tệp (cụ thể là chính tả) là chính xác, cho cả máy cục bộ và máy từ xa. URL bạn đề cập đến tất cả chúng, nhưng đáng để kiểm tra xem những gì bạn có phù hợp. Thông thường các quyền sẽ ném một lỗi có liên quan mặc dù.

Bạn đã kiểm tra xem sshd_config trên hộp CentOS 5.3 của bạn có được đặt để cho phép PubkeyAuthentication hoặc RSAAuthentication không?

Kiểm tra nhật ký máy chủ SSH trên hệ thống CentOS - nó có thể cung cấp thêm thông tin. Tôi không chắc liệu CentOS có kiểm tra khóa ssh trong danh sách đen hay không, nhưng tôi đã thấy các từ chối ssh công khai tương đối im lặng cho đến khi đầu ra -vvv đi, nhưng các bản ghi đã giải thích rõ ràng những gì đang diễn ra

11
Daniel Lawson

Hiểu rồi! Hóa ra đó là một vấn đề phía khách hàng. (Tôi nghĩ rằng bất kỳ vấn đề nào ở phía máy chủ sẽ mang lại đầu ra gỡ lỗi hữu ích hơn.) Vì những lý do mà tôi không biết, trên máy Mac của tôi, tệp/etc/ssh_config có dòng

PubkeyAuthentication = no

Tôi nhận xét rằng một dòng, và bây giờ mọi thứ hoạt động tốt.

7
Trey Parkman

Bên cạnh các chế độ của tệp/thư mục, đảm bảo quyền sở hữu là chính xác! Người dùng phải sở hữu thư mục nhà riêng, .ssh/và các tệp trong đó.

Tôi phải chạy chown -R $user:$user /home/$user để vượt qua thất bại ssh của tôi.

4
Visser

Âm thanh như một vấn đề cấu hình với tôi. Giống như Daniel đề nghị có hai điều cần kiểm tra:

  1. Các khóa SSH trong $HOME/.ssh/authorized_keys có thể đọc được; và
  2. SSHd được cấu hình để cho phép đăng nhập khóa công khai.
2
sybreon

Kiểm tra tên người dùng với những gì bạn đang cố gắng đăng nhập. Theo mặc định, đó là tên người dùng của bạn trên máy cục bộ.

2
Creotiv

Đồng thời kiểm tra xem nó có thể tự động cung cấp khóa hay không, sử dụng -i path/to/key nếu không hoặc chỉ để kiểm tra

2
Jimsmithkka

tôi vừa bị mắc kẹt trong cùng một vấn đề truy cập với lõi Fedora 16 đến xu 5,5

các bản ghi và verbose trông giống hệt nhau

vấn đề là khóa công khai, nó có một số dữ liệu không có thật, tạo lại nó và đăng nó trong sshd_server, bạn sshd_client đang gửi thông tin khóa nhưng không được máy chủ nhận ra (nó không khớp với bất kỳ khóa nào trong ủy quyền)

1
Freaktor

Đầu ra của máy khách như trong ssh -v sẽ tiết lộ rằng có một vấn đề ở một bước nhất định trong giao thức, nhưng khi đó là do một cái gì đó trên máy chủ, máy khách sẽ không được thông báo về nguyên nhân. Kiểm tra các tệp nhật ký máy chủ để tìm hiểu những gì sai. Bạn có thể cần phải là root để có quyền làm như vậy. Ví dụ: đối với một sshd được định cấu hình để đăng nhập vào syslog, bạn có thể tìm thấy các thông báo trong /var/log/secure. Giống như những người này:

Authentication refused: bad ownership or modes for directory /home/you/.ssh
Authentication refused: bad ownership or modes for file /home/you/.ssh/authorized_keys

Lý do trong trường hợp này là mặc định (ngu ngốc) default of 0002. Điều đó có nghĩa là, viết quyền truy cập cho nhóm. (Tên nhóm = tên người dùng, nhưng vẫn còn.) Trình nền SSH sẽ không tin tưởng các tệp có thể bị người khác giả mạo hơn người dùng (dĩ nhiên, và dĩ nhiên là root). Bạn có thể giải quyết vấn đề bằng cách sử dụng chmod.

chmod 700 ~/.ssh # solve the issue
chmod 720 ~/.ssh # reproduce the issue
# or similar for a file
1
Lumi