
Я подключаюсь к серверу, который не контролирую, через 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
Теперь вы просто будете получать письмо, если кто-то использует пароль для входа в вашу учетную запись.