Отключить интерактивный SSH на уровне пользователя

Отключить интерактивный SSH на уровне пользователя

Я подключаюсь к серверу, который не контролирую, через SSH.

Я использую доступ с открытым ключом и мне не нужно подключаться с помощью интерактивного пароля на клавиатуре.

Я хотел бы отключить интерактивный доступ с помощью клавиатуры для своего пользователя, чтобы другие не смогли взломать его таким образом.

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

решение1

Если у вас нет абсолютно никакого контроля над сервером, я не вижу способа это сделать, поскольку вы не контролируете настройки сервера, а именно там это и должно быть.

Вам нужно будет добавить следующее в файл /etc/ssh/sshd_config:

PasswordAuthentication no

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

Match user yourusername
PasswordAuthentication no

Если бы вы могли заставить администратора сервера сделать это за вас, это могло бы быть правильным решением.

Другой способ — установить действительно длинный, случайный и сложный пароль для вашего пользователя, таким образом вы будете достаточно защищены от случайных попыток взлома методом подбора. Большинство злоумышленников, скорее всего, будут использовать какую-то технику на основе словаря, поэтому, пока ваш пароль достаточно длинный и случайный, он должен быть вполне безопасным.

Подробнее см. "man sshd_config". Также предложенное мной решение было предложеноздесь.

решение2

Вам просто нужно отредактировать эту строку из файла /etc/ssh/sshd_configс yesна no:

#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

решение3

[Я предполагаю, что вы используете BASH в качестве оболочки входа. Если нет, настройте соответствующим образом...]

В ~/.ssh/authorized_keys, добавьте спецификацию команды к каждой строке следующим образом:

command="ssh_key=XXX /bin/bash -l" ssh-dss AAAA...K3E= me@mymachine

В ~/.bash-profile, поместите следующую ловушку вверху:

if [ "${ssh_key}" != "XXX" ]; then
  echo "${SSH_CLIENT}" | mailx -s "password login attempt!" me@mailservice
  exit
fi

Теперь вы просто будете получать письмо, если кто-то использует пароль для входа в вашу учетную запись.

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