Làm cách nào để người dùng có thể đăng nhập bằng khóa ssh nhưng không phải bằng mật khẩu?


17

Tôi muốn tạo một người dùng và không có mật khẩu. Như trong bạn không thể đăng nhập bằng mật khẩu. Tôi muốn thêm khóa vào ủy quyền của nó bằng cách sử dụng root. Đây là hệ thống sao lưu tự động của tôi.

Câu trả lời:


26

Việc sử dụng hoàn toàn passwd -dsai , ít nhất là trên Fedora , trên bất kỳ bản phân phối linux nào dựa trên bóng tối. Nếu bạn xóa mật khẩu passwd -d, điều đó có nghĩa là bất kỳ ai cũng có thể đăng nhập vào người dùng đó (trên bảng điều khiển hoặc đồ họa) không cung cấp mật khẩu.

Để chặn đăng nhập bằng xác thực mật khẩu, hãy chạy , khóa tài khoản chỉ cung cấp cho người dùng root. Việc khóa được thực hiện bằng cách hiển thị mật khẩu được mã hóa thành một chuỗi không hợp lệ (bằng cách thêm tiền tố vào chuỗi được mã hóa bằng một!).passwd -l username

Bất kỳ nỗ lực đăng nhập nào, cục bộ hoặc từ xa, sẽ dẫn đến "mật khẩu không chính xác" , trong khi đăng nhập khóa công khai vẫn sẽ hoạt động. Tài khoản sau đó có thể được mở khóa bằng .passwd -u username

Nếu bạn muốn khóa hoàn toàn tài khoản mà không xóa nó, hãy chỉnh sửa /etc/passwdvà thiết lập /sbin/nologinhoặc /bin/falsetrong trường cuối cùng. Điều này sẽ dẫn đến "Tài khoản này hiện không có sẵn." cho bất kỳ attemp đăng nhập.

Vui lòng tham khảo trang man passwd (1).


@guido: rvs sẽ không được thông báo về câu trả lời của bạn. Bạn sẽ cần thêm một nhận xét cho câu trả lời của anh ấy cho điều đó (Tôi đã thực hiện nó). Lưu ý rằng độc giả có thể đọc câu trả lời của bạn trước câu trả lời của bạn, bạn nên viết câu trả lời trực tiếp cho câu hỏi. Cũng được thực hiện để chỉ ra điều này! Nó áp dụng cho hầu hết các bản phân phối Linux (những bản phân phối sử dụng tiện ích bóng Linux).
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles: xin lỗi tôi mới biết về stackexchange; tôi chỉ chỉ ra điều này một chút khó khăn vì nó giống như đề nghị người dùng thiết lập tài khoản không mật khẩu, và nó đã được chấp nhận và đánh dấu là hữu ích ...
guido

@guido: Đừng lo lắng, tôi chỉ giải thích làm thế nào để cảnh báo của bạn hiệu quả hơn. Trên thực tế, trong những trường hợp cực đoan như vậy khi câu trả lời sai một cách nguy hiểm, sẽ rất phù hợp khi đề xuất chỉnh sửa thêm cảnh báo hoặc chỉnh sửa (hy vọng bạn sẽ không gặp phải những tình huống này quá thường xuyên trên trang web).
Gilles 'SO- ngừng trở nên xấu xa'

@guido: Trên thực tế, trên debian Squeeze (tôi không biết về lenny hoặc etch) mà câu trả lời DOES hoạt động. Nó không cho phép bất cứ ai trừ root để đăng nhập, cho phép các khóa nhưng nó không phải là mật khẩu ít hơn, nó chỉ chấp nhận không có mật khẩu. Tôi đã cho rằng bạn có thể 'xóa mật khẩu' và nó sẽ hoạt động theo cách này. Nhưng nó đã làm chính xác những gì tôi muốn và chính xác những gì câu trả lời này làm và là câu trả lời duy nhất nên tôi mới chấp nhận nó. Câu trả lời này có ý nghĩa hơn và tôi sẽ chấp nhận nó bởi vì tôi sẵn sàng đặt cược các bản phân phối khác không cho phép bất cứ ai đăng nhập bc mật khẩu của nó không giống như debian. Dù sao câu trả lời tốt.

1
@ acidzombie24, @mattdn: họ có thể đã xóa nullok khỏi pam.d / password-auth nếu debian sử dụng pam (tôi nghĩ vậy, nhưng tôi không phải là chuyên gia về debian). Tuy nhiên, passwd (1) manpage rõ ràng tuyên bố rằng đối số -d là tạo tài khoản không mật khẩu, do đó, mọi suy đoán cụ thể về phân phối ở đây chỉ là thứ yếu, vì câu hỏi rất chung chung.
guido

2

Bạn không hỏi cụ thể về SSH daemon, không chấp nhận xác thực dựa trên mật khẩu mà là xác thực khóa / cụm mật khẩu?

Hãy tìm những thay đổi để sshd_config.

Bộ

PasswordAuthentication No
PreferredAuthentications publickey,hostbased,keyboard-interactive
Protocol 2,1

Tìm kiếm thêm thông số cấu hình tại man ssh_config


0

Chỉ cần không đặt mật khẩu cho người dùng. Nếu đã có mật khẩu, hãy xóa nó bằng cách sử dụng passwd -l <username>.

Nhưng vẫn có thể đăng nhập với tư cách người dùng này - bằng cách sử dụng ủy quyền hoặc thông qua su hoặc sudo từ một số tài khoản đặc quyền.


1
Như được chỉ ra bởi guido , passwd -dlàm cho tài khoản không có mật khẩu, như trong, bạn có thể đăng nhập mà không cần phải nhập mật khẩu. Sử dụng passwd -lđể khóa tài khoản (nghĩ về việc cung cấp mật khẩu không thể gõ).
Gilles 'SO- ngừng trở nên xấu xa'

Tôi đã thêm một cảnh báo vào bài viết của bạn, vì nó nguy hiểm khi nó đứng. Tôi sẽ để bạn quyết định xem có nên sửa câu trả lời của bạn hay xóa câu trả lời của bạn không (nếu bạn nghĩ rằng guido là đủ) hoặc bác bỏ cảnh báo.
Gilles 'SO- ngừng trở nên xấu xa'

Tại sao oh tại sao mọi người chấp nhận câu trả lời thậm chí không hoạt động?
toán học

@mathepic: Nó hoạt động, trên debian. Chính xác như cách tôi đã hỏi

bạn có chắc chắn rằng người dùng không có đặc quyền không thể sucho người dùng?
mattdm
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.