sudo không có mật khẩu khi đăng nhập bằng khóa riêng SSH


22

Có thể thực hiện lệnh sudo để hỗ trợ các khóa riêng SSH, để khi người dùng đăng nhập bằng khóa riêng thì họ có thể sudo mà không cần nhập mật khẩu.

Điều này sẽ cho phép lưu trữ mật khẩu sysadmin UNIX trong kho lạnh được mã hóa và không bao giờ cần truy cập chúng, giả sử người dùng luôn sử dụng khóa SSH riêng tư an toàn để đăng nhập trên máy chủ.


Askubfox.com/a/135338 Nếu bạn đưa những người dùng đó vào một nhóm, bạn chắc chắn có thể!
Cướp

hãy thử sudo visudovà thay đổi mật khẩu của bạn để NOPASSWD: ALLxem nó có hoạt động không
pneumatics

3
@AlanTuring Điều đó cũng sẽ hoạt động đối với người dùng trong nhóm đã xác định thông qua mật khẩu.
Xyon

@AlanTuring Điều đó sẽ làm giảm hiệu quả bảo mật của máy chủ - Tôi chỉ muốn một số người dùng nhất định, không phải tất cả, sudo
Mikko Ohtamaa

Có thể cung cấp quyền riêng tư cho người dùng cụ thể. Xem câu trả lời của tôi.
Isaac Rabinovitch

Câu trả lời:


9

Tùy chọn để làm như vậy đã tồn tại kể từ (ít nhất) tháng 4 năm 2014 .

Bạn sẽ cần cài đặt gói có tên pam_ssh_agent_auth(có sẵn cho Centos 7, YMMV), sau đó định cấu hình /etc/pam.d/sudođể chấp nhận gói đó như một phương thức ủy quyền. Cuối cùng, bạn có thể cần thêm SSH_AUTH_SOCKvào danh sách các biến môi trường tồn tại trong suốt sudo.

Wiki Gentoo có chi tiết cho các bước này.


1
Đáng yêu, cảm ơn Liam. Thật tệ là tôi đã không tham gia sysadmin trong nhiều năm!
Mikko Ohtamaa

1

Điều này là không thể nếu không có một số thay đổi mã nghiêm trọng thành sudo và sshd. Sudo không biết về các phương thức đăng nhập và ssh không xuất bản cho các chương trình khác bất cứ điều gì cho biết liệu khóa công khai, mật khẩu hoặc một số cơ chế khác đã được sử dụng để đăng nhập.

Như một người khác đã nói, bạn có thể sử dụng tùy chọn NOPASSWD trong sudoers - điều này sẽ luôn áp dụng cho người dùng được chỉ định, tuy nhiên, không chỉ khi họ sử dụng ssh với khóa riêng.

Nếu bạn thực sự muốn, có thể có một số thủ thuật bạn có thể thực hiện với chương trình suid kiểm tra nhật ký sshd và khóa / chỉnh sửa tệp sudoers để cho phép người dùng đó thực hiện sudo không mật khẩu và tác vụ định kỳ để thu hồi quyền này.

Tất cả những gì đã nói, tôi nghĩ rằng đây là một ý tưởng tồi. Yêu cầu mật khẩu cho các lệnh đặc quyền có một số lợi ích tốt mà SSH khóa riêng không có. Đáng chú ý, nó cho phép bạn có thời gian chờ cho auth (mật khẩu phải được nhập lại, không đúng với các phiên ssh), nó cho phép bạn có tối thiểu mật khẩu và xoay vòng (không giống như các khóa ssh, có cụm mật khẩu ngoài kiểm soát của máy chủ).


11
"Nó không thể được thực hiện" không phải là một câu trả lời, đặc biệt là khi nó có thể được thực hiện.
Isaac Rabinovitch

Thay đổi câu trả lời thành câu trả lời đúng có chứa thông tin mới.
Mikko Ohtamaa

1

Một vài câu trả lời Chỉ vào sudo mà không có mật khẩu người dùng riêng biệt. Bạn nên cảnh giác rằng điều này sẽ làm giảm tính bảo mật của bạn.

Đối với một người dùng đã được xác thực mạnh mẽ với một chứng chỉ, điều này có thể không phải là vấn đề bởi vì anh ta đang chứng minh chứng chỉ mà về mặt lý thuyết có thể khiến anh ta root.

Tuy nhiên, nếu bạn nghĩ về các lỗ hổng sẽ cung cấp cho kẻ tấn công một vỏ người dùng hạn chế và người dùng này có NOPASSWD được đặt trong tệp sudoers thì kẻ tấn công đã root mà không có bất kỳ thông tin xác thực nào cho Hệ thống.

Nếu sudo yêu cầu mật khẩu từ người dùng, kẻ tấn công cần thời gian và may mắn để nâng cấp các đặc quyền của mình lên root.

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.