Không thể nhận libpam-ssh-agent-auth Hoạt động trong Ubuntu 13.10


4

Tôi đã vật lộn với vấn đề đặc biệt này hầu hết thời gian trong ngày, và đã đạt được MỘT SỐ tiến bộ, nhưng tôi vẫn còn một chút bế tắc. Tôi muốn có thể xác thực phiên SSH bằng tệp khóa riêng và sau đó sử dụng cùng xác thực đó để xác thực các yêu cầu sudo. Hệ thống tôi đang kết nối TỪ là một hộp Windows sử dụng Putty và Pagete. Hệ thống tôi đang kết nối TO là một hộp Ubuntu chạy 13.10 Saucy (32 bit), và cụ thể là máy chủ OpenSSH. Tôi đã tạo thành công khóa RSA 4096 bit và có thể sử dụng khóa đó để kết nối với các phiên SSH mà không gặp sự cố.

Để tạo điều kiện cho việc xác thực sudo, tôi đang cố gắng cài đặt và sử dụng libpam-ssh-agent-auth. Nó có trên SourceForge và được ghi lại ở đây: http://pamsshagentauth.sourceforge.net/ Có rất nhiều thông tin và hướng dẫn trực tuyến về thư viện này, nhưng thông tin và hướng dẫn chủ yếu là lỗi thời và / hoặc cụ thể.

Một số tiến bộ của tôi: Tôi thấy rằng bạn phải cho phép chuyển tiếp tác nhân người dùng VÀ khởi động và chạy trong Putty để thành công tác nhân người dùng thực sự xuất hiện trên máy chủ Ubuntu. Tôi cũng đã phải thêm "AllowAgentForwarding yes" vào / etc / ssh / sshd_config và dòng "Mặc định env_keep + = SSH_AUTH_SOCK" thành / etc / sudoers (sau 3 dòng Mặc định khác). Những thay đổi này dường như đã cho phép ổ cắm xác thực SSH truyền tới các lệnh sudo, như đã được thử nghiệm trong thiết bị đầu cuối như thế này:

echo "$SSH_AUTH_SOCK"
/tmp/ssh-4LcT4GZtZ8/agent.6725
sudo echo "$SSH_AUTH_SOCK"
/tmp/ssh-4LcT4GZtZ8/agent.6725

Trước khi thực hiện những thay đổi này, tôi đã không nhận được SSH_AUTH_SOCK nào cả, và sau đó chỉ nhận được nó trong dấu nhắc lệnh thông thường, không phải trong sudo. Thực hiện các thay đổi được ghi lại ở trên cho phép ổ cắm xác thực thực hiện thông qua sudo.

Bước cuối cùng có vẻ là cài đặt libpam-ssh-agent-auth và sau đó thực hiện thay đổi cấu hình phù hợp thành /etc/pam.d/sudo. Tôi đã cố gắng tự biên dịch nó và cũng cài đặt các .deb được biên dịch sẵn từ hai PPA khác nhau như một phần trong nhiệm vụ của tôi để làm việc này (như tôi đã nói, đã cố gắng cả ngày) Bước cuối cùng này là điều khiến tôi bế tắc. Về cơ bản, mặc dù có những thứ rõ ràng được cấu hình đúng, tôi không thành công.

Theo hiểu biết của tôi, trường hợp thử nghiệm của tôi phải là chạy "sudo -K" và sau đó sudo bất kỳ lệnh nào. -K đặt lại bộ đếm thời gian sudo, buộc xác thực lại trong lần thử sudo tiếp theo.

Tôi đã không có thành công.

Tệp /etc/pam.d/sudo hiện tại của tôi:

#%PAM-1.0

auth    required        pam_env.so      readenv=1 user_readenv=0
auth    required        pam_env.so      readenv=1 envfile=/etc/default/locale user_readenv=0
auth sufficient pam_ssh_agent_auth.so file=~/.ssh/authorized_keys
auth requisite pam_unix.so nullok_secure
@include common-auth
@include common-account
@include common-session-noninteractive

Tôi nghĩ rằng đây có thể là một nơi tốt để đăng về những thứ này.

Câu trả lời:


1

Tôi đã có thể tự giải quyết vấn đề này.

Chìa khóa để khắc phục sự cố này là kiểm tra tệp /var/log/auth.log. Kiểm tra nhật ký này dẫn tôi đến lỗi

pam_ssh_agent_auth: Authentication refused: bad ownership or modes for file

Điều này dẫn tôi đến vấn đề đầu tiên: quyền sở hữu và quyền của tệp phải được đặt đúng để xác thực SSH được tiến hành. Tôi đặc biệt phải chạy "chmod 700 -R ~ / .ssh" Điều này đã khắc phục lỗi cụ thể đó, nhưng sau đó khi tôi cố gắng sudo, tôi đã nhận được "mật khẩu không chính xác" ba lần, và sau đó là lỗi sudo.

Để giải quyết vấn đề này, cuối cùng tôi đã thay đổi tệp /etc/pam.d/sudo, cụ thể là nhận xét mọi thứ trừ dòng

auth       sufficient pam_ssh_agent_auth.so file=~/.ssh/authorized_keys debug allow_user_owned_authorized_keys_file

Điều này là xa lý tưởng, nhưng cho tôi một nơi để bắt đầu. Các chỉnh sửa tiếp theo cho tệp /etc/pam.d/sudo sẽ cho phép các loại xác thực khác cũng hoạt động.

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.