"Không có mật khẩu" nghĩa là gì trong tệp sshd_config?


118

Tôi vừa cài đặt Ubuntu 14.04 trên máy chủ của mình và tôi đang thiết lập tất cả các tệp cấu hình của mình khi tôi gặp phải sshd_configtệp này trong tệp của mình :

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

Điều này làm tôi rất lo lắng. Tôi nghĩ rằng có khả năng ai đó có thể đăng nhập vào máy chủ của tôi bằng root mà không cần mật khẩu.

Tôi đã thử kết nối với máy chủ của mình dưới quyền root thông qua:

johns-mbp:~ john$ ssh root@192.168.1.48
The authenticity of host '192.168.1.48 (192.168.1.48)' can't be established.
RSA key fingerprint is 40:7e:28:f1:a8:36:28:da:eb:6f:d2:d0:3f:4b:4b:fe.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.48' (RSA) to the list of known hosts.
root@192.168.1.48's password:  

Tôi đã nhập một mật khẩu trống và nó không cho tôi vào, đó là một sự giải thoát. Vì vậy, câu hỏi của tôi là: không có mật khẩu nghĩa là gì và tại sao đây là mặc định trong Ubuntu 14.04?

Câu trả lời:


142

Từ trang hướng dẫn :

PermitRootLogin

Chỉ định xem root có thể đăng nhập bằng ssh (1) hay không. Đối số phải là, vâng, ngay lập tức, không có mật khẩu, mật khẩu, chỉ có các lệnh bắt buộc, hoặc "không có mật khẩu".

Nếu tùy chọn này được đặt thành mật khẩu mà không có mật khẩu, thì xác thực mật khẩu sẽ bị tắt đối với root.

Nếu tùy chọn này được đặt thành chỉ có các lệnh bắt buộc của Viking, thì đăng nhập gốc bằng xác thực khóa chung sẽ được cho phép, nhưng chỉ khi commandtùy chọn này được chỉ định (có thể hữu ích cho việc sao lưu từ xa ngay cả khi đăng nhập gốc thường không được phép) . Tất cả các phương thức xác thực khác bị vô hiệu hóa cho root.

Nếu tùy chọn này được đặt thành Không có người dùng, root không được phép đăng nhập.

Do đó, without-passwordcho phép đăng nhập root chỉ với xác thực khóa công khai. Điều này thường được sử dụng với các kịch bản shell và các tác vụ tự động.


2
Không cho phép 'Root đăng nhập' bằng mật khẩu được coi là bảo mật mạnh hơn so với việc cho phép nó. Điều đó nói rằng, bạn không nên đăng nhập vào root , trừ khi không có phương pháp nào khác (sudo, v.v.) sẽ hoạt động.
david6

5
Tuy nhiên, như bạn có thể thấy, trong khi trang man chỉ ra mặc định là "có", Ubuntu đã tạo mặc định "không có mật khẩu".
Ferrouswheel

36
Vì vậy, without-passwordcó nghĩa là tất cả các phương pháp được phép ngoại trừ mật khẩu? Nó thực sự nghe giống như "được phép đăng nhập mà không cần mật khẩu".
Gauthier

1
"Tất cả quyền truy cập root phải được tạo điều kiện thông qua đăng nhập cục bộ với ID người dùng duy nhất và có thể nhận dạng và sau đó thông qua lệnh su một khi được xác thực cục bộ. Đăng nhập gốc trực tiếp là rất không an toàn và cung cấp rất ít cách kiểm tra trách nhiệm." - Hướng dẫn AIX của IBM
Dominik Antal

22
PermitRootLogin now accepts an argument of 'prohibit-password' as a less-ambiguous synonym of 'without-password'.
endolith

16

Trên thực tế, cài đặt này không có gì nhiều nếu bạn đang sử dụng xác thực PAM. Ở dưới cùng của sshd_configtệp cấu hình, bạn sẽ tìm thấy:

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.

Cài đặt mặc định trên Ubuntu là sử dụng xác thực PAM:

UsePAM yes

1
Theo kinh nghiệm ngắn gọn của tôi , thậm chí thiết lập điều này nosẽ không thực PermitRootLogin without-passwordsự hoạt động, bằng cách nào đó! :(
cregox

1
@cregox nếu bạn đang sử dụng một hệ thống máy tính để bàn thông thường, bạn cần phải làm ssh-copy-id -i ~/.ssh/id_rsa.pub user@ipvà nó sẽ ~/.ssh/authorized_keysghi nhớ nếu bạn không thể đăng nhập bằng root, bạn sẽ không tạo tệp này trong /root/.ssh/ nhưng nó hoạt động nếu bạn sao chép tập tin ở đó
Rutrus

3

Lưu ý rằng có những lý do chính đáng để đăng nhập qua root (nhưng sử dụng khóa mật mã và không bao giờ là mật khẩu). Một ví dụ điển hình là đồng bộ hóa từ xa hai máy chủ (để một trong số chúng được sử dụng làm lỗi). Bởi vì cấu trúc phải giống hệt nhau, thường thì mật khẩu gốc là bắt buộc.

Dưới đây là một ví dụ sử dụng unison cho đồng bộ hóa: https://serverfault.com/questions 4321985 / remem-use-root-over-ssh-for-unison


2
Không đăng nhập với người dùng bình thường (rất có thể sử dụng khóa mật mã) và việc nó thuộc về sudonhóm có cho phép bạn làm điều này không?
NS du Toit

2

Trong các phiên bản mới hơn của sshd "không có mật khẩu" đã được đổi thành "mật khẩu cấm".

Cả hai phiên bản đều hoạt động, có lẽ tốt nhất là sử dụng "mật khẩu cấm" nếu bạn có thể: nó giải thích chính nó tốt hơn.

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.