Как разрешить пользователю ssh использовать пароль только в том случае, если он использует локальную сеть?

Самый простой способ сказать системе не использовать swap - просто отключить ее:

sudo swapoff -a

Таким образом, OS будет иметь выбор. Но если у вас есть 66% используемой подкачки, и только 10% физической памяти есть что-то очень плохое.

1
задан 8 April 2018 в 19:17

3 ответа

Вы должны сделать это с помощью директивы Match.

Прежде чем начать, убедитесь, что у вас есть хотя бы одна учетная запись с рабочим доступом на основе ключа к серверу (или физическим доступом).

Затем отредактируйте файл /etc/ssh/sshd_config сервера, добавление блока соответствия в конец, например

Match User john Address 192.168.1.0/24
    PasswordAuthentication yes

Обратите внимание, что это выражает два условия: User john и Address 192.168.1.0/24, убедитесь, что у вас есть хотя бы одна учетная запись с рабочим доступом на основе ключа на сервер которого должно быть выполнено для того, чтобы PasswordAuthentication yes применялся. [F14] - это обозначение CIDR для любого адреса в подсети 192.168.1.x.

Теперь вы можете отключить аутентификацию пароля для других комбинаций между пользователем и адресом в основном корпусе конфигурации, находя начало раздела :

# Change to no to disable tunnelled clear text passwords

и изменение по умолчанию

#PasswordAuthentication yes

на

PasswordAuthentication no

Наконец, перезапустите службу - для систем инициализации на основе systemd вы можете сделать это с помощью

sudo systemctl restart ssh.service

. Вы можете проверить, что пользователи, не совпадающие с паролем, больше не могут аутентифицироваться с использованием паролей, заставляя клиента попробовать, например

$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no steeldriver@192.168.1.11

сообщение

Permission denied (publickey).

, тогда как john должно быть предложено ввести пароль:

$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no john@192.168.1.11
john@192.168.1.11's password: 
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-116-generic x86_64)

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

2
ответ дан 22 May 2018 в 11:33

Вы должны сделать это с помощью директивы Match.

Прежде чем начать, убедитесь, что у вас есть хотя бы одна учетная запись с рабочим доступом на основе ключа к серверу (или физическим доступом).

Затем отредактируйте файл /etc/ssh/sshd_config сервера, добавление блока соответствия в конец, например

Match User john Address 192.168.1.0/24 PasswordAuthentication yes

Обратите внимание, что это выражает два условия: User john и Address 192.168.1.0/24, убедитесь, что у вас есть хотя бы одна учетная запись с рабочим доступом на основе ключа на сервер которого должно быть выполнено для того, чтобы PasswordAuthentication yes применялся. [F14] - это обозначение CIDR для любого адреса в подсети 192.168.1.x.

Теперь вы можете отключить аутентификацию пароля для других комбинаций между пользователем и адресом в основном корпусе конфигурации, находя начало раздела :

# Change to no to disable tunnelled clear text passwords

и изменение по умолчанию

#PasswordAuthentication yes

на

PasswordAuthentication no

Наконец, перезапустите службу - для систем инициализации на основе systemd вы можете сделать это с помощью

sudo systemctl restart ssh.service

. Вы можете проверить, что пользователи, не совпадающие с паролем, больше не могут аутентифицироваться с использованием паролей, заставляя клиента попробовать, например

$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no steeldriver@192.168.1.11

сообщение

Permission denied (publickey).

, тогда как john должно быть предложено ввести пароль:

$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no john@192.168.1.11 john@192.168.1.11's password: Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-116-generic x86_64)

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

2
ответ дан 17 July 2018 в 17:14

Вы должны сделать это с помощью директивы Match.

Прежде чем начать, убедитесь, что у вас есть хотя бы одна учетная запись с рабочим доступом на основе ключа к серверу (или физическим доступом).

Затем отредактируйте файл /etc/ssh/sshd_config сервера, добавление блока соответствия в конец, например

Match User john Address 192.168.1.0/24 PasswordAuthentication yes

Обратите внимание, что это выражает два условия: User john и Address 192.168.1.0/24, убедитесь, что у вас есть хотя бы одна учетная запись с рабочим доступом на основе ключа на сервер которого должно быть выполнено для того, чтобы PasswordAuthentication yes применялся. [F14] - это обозначение CIDR для любого адреса в подсети 192.168.1.x.

Теперь вы можете отключить аутентификацию пароля для других комбинаций между пользователем и адресом в основном корпусе конфигурации, находя начало раздела :

# Change to no to disable tunnelled clear text passwords

и изменение по умолчанию

#PasswordAuthentication yes

на

PasswordAuthentication no

Наконец, перезапустите службу - для систем инициализации на основе systemd вы можете сделать это с помощью

sudo systemctl restart ssh.service

. Вы можете проверить, что пользователи, не совпадающие с паролем, больше не могут аутентифицироваться с использованием паролей, заставляя клиента попробовать, например

$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no steeldriver@192.168.1.11

сообщение

Permission denied (publickey).

, тогда как john должно быть предложено ввести пароль:

$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no john@192.168.1.11 john@192.168.1.11's password: Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-116-generic x86_64)

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

2
ответ дан 23 July 2018 в 18:05

Другие вопросы по тегам:

Похожие вопросы: