Дозволити кореневий вхід лише з однієї IP-адреси


14

У мене є центос5.

Чи є спосіб, щоб я міг увійти на свій сервер vps з користувачем root тільки з конкретної ip адреси.

Я прочитав, що я можу використовувати приватний ключ для входу в sshd. Але проблема полягає в тому, що я використовую SFTP для всіх своїх веб-веб-сайтів, і я не хочу, щоб користувачі, які не користуються ІТ, використовували ключі для входу з SFTP.

АБО чи є спосіб, що тільки root може використовувати ключі для входу в оболонку, а для інших - звичайний пароль

centos  root  ssh 

Відповіді:


15

Зараз краще використовувати ключове слово:

Match Host myworkstation
        PermitRootLogin yes

або

Match Address 192.168.1.100
        PermitRootLogin yes

Таким чином, ви можете залишити PermitRootLogin на "ні", але ви все одно можете увійти як корень зі своєї робочої станції.

Це також можна використовувати, наприклад, для того, щоб дозволити корінь rsync даних між двома хостами.


ваш приклад rsync - це саме той випадок використання, для якого я розібрав це питання. Дякую! ;)
січня

Майте на увазі, що це працює лише за допомогою зворотного DNS вихідної IP-адреси. (принаймні для мене це був єдиний спосіб)
mveroone

9

Як правило, краще ввійти як непривілейований користувач, а потім використовувати "su -" або "sudo", щоб отримати кореневі привілеї, але ...

Ви завжди можете поставити обмеження IP на свій ключ у ~ root / .ssh / pooblasti_keys:

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

Це дозволить ssh використовувати ключ yourkey@yourhost.com лише з 192.168.1.100.


Домовились, хоча це складніше робити для таких речей, як sftp, rsync, sshfs ...
mveroone

3

Використання:

PermitRootLogin без пароля

В / etc / ssh / sshd_config. Кожен користувач, що виключає root, буде дозволений використовувати вхід пароля. Кореневі потрібно використовувати клавіші для входу.


Чи спрацює цей випадок ?? ти спробував це

Я використовую цей параметр на кожному сервері, який я підтримую. Це запобігає атакам кореневої грубої сили / дикту. unixhelp.ed.ac.uk/CGI/man-cgi?sshd_config+5
rubiojr

Це, здається, зламається git pull: / etc / ssh / ssh_config: рядок 68: Неправильний параметр конфігурації: dozvorootlogin
geoidesic

Також PermitRootLogin не з'являється вman ssh_config
геодезичний

Також легко ssh -o PreferredAuthentications=password
відміняти

2

Відредагуйте sshd_config(зазвичай в /etc/ssh) та додайте або змініть наведені нижче директиви

  PermitRootLogin yes
  AllowUsers root@thehosttoallow

Потім перезапустіть демон

  service ssh restart

Я вважаю, що якби ОП хотіла використовувати AllowUsers, йому потрібно було б вказати всіх користувачів, до яких він хоче мати доступ. Ваш приклад дозволив би root тільки автентифікуватись через ssh.
ЄЕАА

1
Так, це цілеспрямовано. Щоб дозволити будь-якому користувачеві, *@thehosttoallowнасправді пустіть будь-якого користувача.
Дзвінок Ø

Також легко ssh -o PreferredAuthentications=password
відміняти

0

По-перше, чому ви хочете не дозволяти користувачам використовувати ключові автори? Це для мене немає сенсу.

По-друге, не дозволяйте входити в корінь через ssh. Просто не робіть цього - немає вагомих причин для того, щоб це робити. Це суперечить будь-якій кращій практиці там, і це з поважних причин. Якщо вам потрібно надати дозволи для читання / запису певних файлів, ви повинні це зробити через стандартні права доступу до файлової системи Linux. Якщо вам потрібен більш дрібний контроль доступу, загляньте в систему ACL linux.


Що робити, якщо я відключу кореневий вхід, і жоден користувач не має доступу до якогось основного конфігураційного файла. Тоді я заблокований, оскільки я не можу увійти через root

1
Якщо ви відключите кореневий вхід через ssh, root все одно зможе входити через консоль. Крім того, у вас завжди є можливість надати звичайні дозволи користувача root-esque через sudo. Це не спрацює за sftp, але як відмова у випадку, якщо вам потрібно виправити речі, це спрацювало б добре і є кращим способом надання дозволів.
EEAA

1
@ErikA Дозвіл rootвід унікального хоста не є небезпечним. Там була тенденція в відношенні rootдоступу через telnetкілька років назад (besore sshбула поширена), але дозволяє з rootдопомогою sshдо тільки один хосту не виглядає , що небезпечно.
Кільце Ø

Звичайно, це може бути "безпечно", але я все одно стверджую, що це погана ідея. Я кажу це головним чином через те, що, коли людям надають простий спосіб отримати кореневий доступ, вони скористаються ним, а не більш безпечним, правильнішим способом отримання доступу (sudo).
EEAA

2
Розглядаючи питання автора, можна припустити, що він хоче виконувати адміністративні завдання через rootкористувача. Дозволити прямий rootдоступ лише від одного хоста в цьому випадку є розумною альтернативою.
Кільце Ø
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.