Chỉ cho phép đăng nhập root từ một địa chỉ IP


14

Tôi có centos5.

Có cách nào tôi có thể đăng nhập vào máy chủ vps của mình với người dùng root chỉ từ địa chỉ IP cụ thể không.

Tôi đã đọc rằng tôi có thể sử dụng khóa riêng để đăng nhập vào sshd. Nhưng vấn đề là tôi đang sử dụng SFTP cho tất cả các webist của mình và tôi không muốn người dùng CNTT không sử dụng khóa để đăng nhập bằng SFTP.

HOẶC có cách nào mà chỉ root mới có thể sử dụng khóa để đăng nhập vào shell nhưng đối với người khác thì mật khẩu bình thường của nó

centos  root  ssh 

Câu trả lời:


15

Cách tốt hơn bây giờ là sử dụng từ khóa Match:

Match Host myworkstation
        PermitRootLogin yes

hoặc là

Match Address 192.168.1.100
        PermitRootLogin yes

Bằng cách đó, bạn có thể để PermitRootLogin được đặt thành 'không', nhưng bạn vẫn có thể đăng nhập bằng root từ máy trạm của mình.

Điều này cũng có thể được sử dụng, ví dụ, để cho phép root dữ liệu rsync giữa hai máy chủ.


ví dụ rsync của bạn chính xác là trường hợp sử dụng mà tôi đã đưa ra câu hỏi này. Cảm ơn bạn! ;)
ngày 1

Xin lưu ý rằng điều này chỉ hoạt động bằng cách sử dụng DNS ngược của địa chỉ IP nguồn. (ít nhất với tôi đó là cách duy nhất)
mveroone 18/07/18

9

Nói chung, thông thường tốt hơn là đăng nhập với tư cách là người dùng không có đặc quyền trước tiên sau đó sử dụng 'su -' hoặc 'sudo' để có được quyền root, nhưng ...

Bạn luôn có thể đặt giới hạn IP trên khóa của mình trong ~ root / .ssh / ủy quyền:

from="192.168.1.100" ssh-rsa AAAAh9uif...auwehuf== yourkey@yourhost.com

Điều này sẽ cho phép ssh sử dụng khóa yourkey@yourhost.com chỉ từ 192.168.1.100.


Đồng ý, mặc dù điều đó phức tạp hơn để làm những việc như sftp, rsync, sshfs ...
mveroone 18/07/18

3

Sử dụng:

PermitRootLogin không có mật khẩu

Trong / etc / ssh / sshd_config. Mọi người dùng không bao gồm root sẽ được phép sử dụng thông tin đăng nhập mật khẩu. Root cần sử dụng khóa để đăng nhập.


Liệu sl sl này sẽ làm việc ?? bạn đã thử cái này chưa

Tôi sử dụng cài đặt đó trong mọi máy chủ tôi duy trì. Nó ngăn chặn các cuộc tấn công bruteforce / dict gốc. unixhelp.ed.ac.uk/CGI/man-cgi?sshd_config+5
rubiojr

Điều này dường như bị phá vỡ git pullmặc dù: / etc / ssh / ssh_config: dòng 68: Tùy chọn cấu hình xấu: allowrootlogin
Geoidesic

Ngoài ra PermitRootLogin không xuất hiện trongman ssh_config
địa lý

Cũng dễ dàng bị ghi đè bằngssh -o PreferredAuthentications=password
địa lý

2

Chỉnh sửa sshd_config(thường là trong /etc/ssh) và thêm hoặc thay đổi các chỉ thị sau

  PermitRootLogin yes
  AllowUsers root@thehosttoallow

Sau đó khởi động lại daemon

  service ssh restart

Tôi tin rằng, nếu OP muốn sử dụng AllowUsers, anh ta sẽ cần chỉ định tất cả người dùng mà anh ta muốn có quyền truy cập. Ví dụ của bạn sẽ chỉ cho phép root xác thực qua ssh.
EEAA

1
Vâng, đây là mục đích. Để cho phép bất kỳ người dùng nào, *@thehosttoallowthực sự cho phép bất kỳ người dùng nào tham gia.
Đổ chuông

Cũng dễ dàng bị ghi đè bằngssh -o PreferredAuthentications=password
địa lý

0

Đầu tiên, tại sao bạn muốn ngăn người dùng sử dụng khóa auth? Điều đó vô nghĩ với tôi.

Thứ hai, không cho phép đăng nhập root thông qua ssh. Đừng làm điều đó - không có lý do chính đáng để cần phải làm như vậy. Nó đi ngược lại mọi thực hành tốt nhất ngoài kia, và vì lý do tốt. Nếu bạn cần cấp quyền để đọc / ghi một số tệp nhất định, bạn sẽ có thể làm như vậy thông qua các quyền hệ thống tệp linux tiêu chuẩn. Nếu bạn cần kiểm soát truy cập chi tiết hơn, hãy nhìn vào hệ thống ACL linux.


Điều gì xảy ra nếu tôi vô hiệu hóa đăng nhập root và không ai trong số người dùng có quyền truy cập vào một số tệp cấu hình chính. Sau đó, tôi bị khóa vì tôi không thể đăng nhập qua root

1
Khi bạn tắt đăng nhập root thông qua ssh, root vẫn có thể đăng nhập thông qua bảng điều khiển. Ngoài ra, bạn luôn có tùy chọn cấp quyền người dùng root-esque thông thường thông qua sudo. Điều này sẽ không hoạt động cho sftp, nhưng là một lỗi trong trường hợp bạn cần sửa chữa mọi thứ, nó sẽ hoạt động tốt và là cách cấp quyền ưa thích.
EEAA

1
@ErikA Cho phép roottừ một máy chủ duy nhất không an toàn. Có một xu hướng chống lại sự roottruy cập thông qua telnetmột vài năm trở lại (besore sshđã được phổ biến), nhưng cho phép rootthông qua sshđể chỉ một máy chủ không nhìn mà không an toàn.
Đổ chuông

Chắc chắn, nó có thể là "an toàn", nhưng tôi vẫn cho rằng đó là một ý tưởng tồi. Tôi nói điều này chủ yếu là do thực tế là, khi mọi người được cung cấp một cách dễ dàng để có quyền truy cập root, họ sẽ sử dụng nó, thay vì sử dụng một cách an toàn hơn, đúng đắn hơn để có quyền truy cập (sudo).
EEAA

2
Xem xét câu hỏi của tác giả, người ta có thể cho rằng anh ta muốn thực hiện các nhiệm vụ quản trị thông qua rootngười dùng. Cho phép roottruy cập trực tiếp từ chỉ một máy chủ trong trường hợp này là một sự thay thế hợp lý.
Đổ chuô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.