
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_config
in yes
die 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_keys
Stellen 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-profile
die 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.