Как разрешить в SSH доступ как root, так и ограниченным пользователям?

Как разрешить в SSH доступ как root, так и ограниченным пользователям?

Возможно ли (и если да, то как) сделать следующее openssh-server:

  • иметь возможность аутентифицировать rootпользователя с помощью ключа и без пароля
  • иметь возможность аутентифицировать non-rootпользователя с помощью ключа и без пароля
  • чтобы предотвратить non-rootвход пользователя в систему rootс использованием его/ее собственного ключа
  • сделать это с одним экземпляром sshd, используя только одинTCP port

И да, я прекрасно осознаю риски опциона PermitRootLogin yes.

решение1

Это должно работать «из коробки» и не требует ничего, кроме помещения открытых ключей пользователей в файл .ssh/authorized_keys для соответствующего пользователя на сервере. (Если этот файл для пользователя не существует, создайте его!)

Единственное, о чем следует знать, это то, что если открытый ключ пользователя, не являющегося root, добавлен в файл root/.ssh/authorized_keys сервера, то этот пользователь, не являющийся root, сможет войти на сервер как пользователь root. Поэтому, чтобы избежать этого, просто не добавляйте его ключ в файл root authorized_keys.

Вы уже сталкивались с PermitRootLogin - который, конечно, должен быть включен на сервере. Вы можете (по желанию) ограничить, кто и откуда может входить в систему (если вообще может), добавив строку типа "AllowUsers[email protected] [email protected]«user2» — который разрешит вход только root и user1 с определенного IP-адреса, но user2 может войти в систему откуда угодно. Вы можете расширить это с помощью необходимого количества комбинаций user/ip.

Связанный контент