Interaktives SSH auf Benutzerebene deaktivieren

Interaktives SSH auf Benutzerebene deaktivieren

Ich verbinde mich über SSH mit einem Server, den ich nicht steuere.

Ich verwende den öffentlichen Schlüsselzugriff und muss mich nicht mit einem tastaturinteraktiven Passwort verbinden können.

Ich möchte den tastaturinteraktiven Zugriff für meinen Benutzer deaktivieren, sodass es für andere keine Möglichkeit gibt, auf diese Weise zu hacken.

Da ich den Server nicht steuere, gibt es eine Möglichkeit, die Konfigurationsdatei meines Benutzers so einzurichten, dass der tastaturinteraktive Zugriff verhindert wird?

Antwort1

Wenn Sie absolut keine Kontrolle über den Server haben, sehe ich keine Möglichkeit, dies zu tun, da Sie keine Kontrolle über die Servereinstellungen haben, und dort müsste dies hin.

Sie müssen Folgendes zur Datei /etc/ssh/sshd_config hinzufügen:

PasswordAuthentication no

Dies würde die Passwortauthentifizierung füralleBenutzer, was möglicherweise unerwünscht ist. Was Sie dann tun könnten, ist, diese Konfigurationsanweisung in einen Match-Block zu setzen, sodass sie nur für Ihren Benutzer in derselben Konfigurationsdatei gilt:

Match user yourusername
PasswordAuthentication no

Wenn Sie den Serveradministrator dazu bringen könnten, dies für Sie zu tun, wäre dies möglicherweise die richtige Lösung.

Eine andere Möglichkeit besteht darin, ein wirklich langes, zufälliges und kompliziertes Passwort für Ihren Benutzer festzulegen. Auf diese Weise sind Sie einigermaßen vor zufälligen Brute-Force-Einbruchsversuchen geschützt. Die meisten Angreifer würden wahrscheinlich eine wörterbuchbasierte Technik verwenden. Solange Ihr Passwort lang und zufällig genug ist, sollte es ziemlich sicher sein.

Weitere Einzelheiten finden Sie unter "man sshd_config". Außerdem wurde die von mir vorgeschlagene Lösung vorgeschlagenHier.

Antwort2

Sie müssen nur diese Zeile von der Datei /etc/ssh/sshd_configin yesdie folgende ändern no:

#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

Antwort3

[Ich gehe davon aus, dass Sie BASH als Login-Shell verwenden. Falls nicht, passen Sie es entsprechend an...]

~/.ssh/authorized_keysStellen Sie in jeder Zeile eine Befehlsspezifikation wie folgt voran :

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

Platzieren Sie in oben ~/.bash-profiledie folgende Falle:

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

Jetzt erhalten Sie nur noch eine E-Mail, wenn jemand ein Kennwort verwendet, um auf Ihr Konto zuzugreifen.

verwandte Informationen