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

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

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

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

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

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

Что вам нужно сделать, это добавить это в файл / etc / ssh / sshd_config:

PasswordAuthentication no 

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

 Match user yourusername PasswordAuthentication no 

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

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

Подробнее см. «Man sshd_config». Кроме того, предложенное мной решение было предложено здесь .

[Я предполагаю, что вы используете 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 

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

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

 #ChallengeResponseAuthentication yes ChallengeResponseAuthentication no