SSH-Login per Passwort auf Benutzerbasis deaktivieren?

1563
user137369

Ich habe einige Webhosting-Anbieter (Bluehost und Dreamhost) gefragt, und beide sagten, dass sie bei Shared-Hosting-Konten keine Möglichkeit haben, die Anmeldung über SSH mit einem Kennwort zu deaktivieren. Dies bedeutet, dass, selbst wenn wir SSH-Schlüssel einrichten, das Anmelden ohne sie und über das Kennwort des Hostings immer aktiviert wird, was den größten Vorteil für die Schlüssel annimmt.

Nach allem, was ich online finden kann, /etc/ssh/sshd_configist die Bearbeitung der Weg, die Anmeldung über ein Kennwort zu deaktivieren. Da es sich jedoch um Shared Hosting handelt, ist dies nicht möglich.

Trotzdem haben sie nie behauptet, dass es nicht geht (obwohl ich keinen Weg gefunden habe), nur dass sie es nicht unterstützen. Gibt es eine Möglichkeit, dies auf Benutzerbasis zu tun, damit ich es selbst einrichten kann? Und wenn nicht, warum nicht? Was ist die (technische / Entwurfs-) Einschränkung in der Funktionsweise von SSH, die dies verhindert?

3
Sicherheit ist zwar in jeder Umgebung wichtig. Wenn dies für Ihre Mission von entscheidender Bedeutung ist, sollten Sie einen eigenen dedizierten Server oder einen eigenen VPS einrichten, auf dem Sie die Deaktivierung der Kennworteingabe steuern können. Ich habe einen der Hosts, den Sie erwähnt haben, und nicht zu 100% dasselbe wie das Deaktivieren von Anmeldedaten mit Passwort. Ich habe lange, mehr als 50 zufällige Passwörter erstellt, wobei die Müll-Tastatur auf den Notizblock schlug. Nachdem ich die Kennwörter zweimal eingefügt habe, um die Notepad-Dateien festzulegen und zu bestätigen, wurden sie nie gespeichert. Es könnte wahr sein, dass es irgendwann geknackt werden könnte, aber es kann niemals "gefunden" oder erraten werden. Ich kann mir vorstellen, dass andere Aspekte des Shared Hosting weniger sicher sind als mein Pass. Tyson vor 9 Jahren 0
Ich habe über 60 Zeichen, die in einem Passwort-Manager geschützt sind. Das ist nicht der Punkt. Ich würde gerne wissen, ob es möglich ist und wenn nicht, warum nicht. user137369 vor 9 Jahren 0
Sie können dies tun, wenn sie es konfiguriert haben. Es gibt keine Möglichkeit, die Sie ohne su Berechtigungen konfigurieren können. Werden sie es tun? Nein, nicht für dieses Preismodell, wechseln Sie zur nächsten Ebene, wenn Sie es brauchen. Tyson vor 9 Jahren 0
Ja, das weiß ich, ich sage so viel in der Frage. ** Meine Frage ist warum **? Warum lässt SSH das nicht zu? Ist es beabsichtigt? Ist es eine Einschränkung, die überwunden werden kann, die aber nicht interessiert ist? ist es eine Einschränkung des zugrunde liegenden Systems? Was verhindert, dass dies möglich ist? user137369 vor 9 Jahren 0
Es ist eine Einschränkung, die überwunden werden kann, aber sie sind nicht daran interessiert. Auch die Anzahl der Nutzer, die dies wünschen, fordern / fordern, wird bei diesem Preismodell eher gering sein. Benutzer, die in die Kategorie "wollen / wollen / fordern" fallen, haben andere Gründe, um su-Privilegien zu benötigen, die auf der nächsten Stufe des Hostings liegen. Sobald Sie su / root haben, können Sie es selbst zum Laufen bringen. Der Bedienfeldroboter des Hosts ist ein Su auf Ihrem gemeinsam genutzten Host. Er kann die Schritte so programmieren, dass er auf der Basis eines Kontrollkästchens ausgeführt wird. Tyson vor 9 Jahren 0
Um dies zu tun, müssten sie [jeden Benutzer angeben, der solche Funktionen wünscht] (http://www.linux.org/threads/how-to-force-ssh-login-via-public-key-authentication.4253) /) in der `/ etc / ssh / sshd_config`, richtig? Aber warum können wir keine benutzerspezifischen `sshd_config 'mit Einschränkungen erstellen, die sich nur auf unseren eigenen Zugriff beziehen? user137369 vor 9 Jahren 0

3 Antworten auf die Frage

3
RedGrittyBrick

[Gibt es eine Möglichkeit, die SSH-Anmeldung per Kennwort auf Benutzerbasis zu deaktivieren?

Nr. Allgemein.

Was ist die (technische / Entwurfs-) Einschränkung in der Funktionsweise von SSH, die dies verhindert?

Im SSH-Protokolldesign oder in der Spezifikation wird darauf hingewiesen, dass dies verhindert wird.

Es handelt sich um eine implementierungsspezifische Einschränkung im SSH-Dämon (oder -Dienst).

Das übliche sshdProgramm unter Linux (etc) wurde geschrieben, um eine einzige Konfigurationsdatei zu lesen, die für alle Benutzer dieser Instanz des Programms gilt.

Ich glaube, es wäre möglich, einen SSH-Daemon zu schreiben, der nach einer ergänzenden Konfigurationsdatei im Heimatverzeichnis eines Benutzers sucht (zum Beispiel). Dies wurde jedoch nicht getan (unzureichende Nachfrage wahrscheinlich)


Gibt es etwas ungefähr gleichwertiges?

Sie können das Anmeldekennwort des Benutzers auf eine extrem lange und völlig zufällige Zeichenfolge setzen.

Es kann möglich sein, die Shell zum Festlegen eines Kennworts zu verwenden, das Zeichen enthält, die nicht mit SSH-Clients der Art eingegeben werden können, von denen angenommen wird, dass sie von Angreifern verwendet werden. Oder zumindest um ein Passwort zu setzen, das viel länger ist als jedes, das sie wahrscheinlich mit den üblichen wörterbuchbasierten Ansätzen versuchen werden.

Sie können beispielsweise / etc / shadow manuell bearbeiten und das verschlüsselte Kennwort auf 'x' setzen. Da zu dieser Zeichenfolge nichts verschlüsselt ist, gibt es kein gültiges Kennwort. Wenn es nur eine Möglichkeit gäbe, die Standardwerkzeuge dazu zu bringen, dies für uns zu tun ... Jeremy Phelps vor 6 Jahren 1
-1
davidgo

SSH DOES unterstützt diese Funktion und ist recht einfach zu implementieren. Wie andere bereits gesagt haben, ist die Zusammenarbeit Ihres Providers erforderlich. Sie würden dies tun, indem Sie ein Benutzerkonto ohne gültiges Passwort einrichten (In meiner Distribution können Sie ein paar Mal ein Passwort unter adduser nicht eingeben. Sie können jedoch / etc / shadow immer ändern und das verschlüsselte Passwort ändern in " * "oder"! "- so viele Konten sind bereits eingerichtet.

Der zweite Schritt besteht darin, Ihren öffentlichen Schlüssel in authorised_hosts zu installieren - dies macht es für ssh unnötig, Ihr Passwort zu überprüfen, um Ihnen Zugriff zu gewähren.

Ja, wie ich schon oft kommentiert habe und in der ursprünglichen Frage erwähnt habe, ist mir klar, dass dies mit der Intervention des Gastgebers möglich ist. Meine Frage ist, warum es nicht möglich ist, ** ohne ** Eingreifen des Hosts pro Benutzer zu tun. user137369 vor 9 Jahren 0
-1
Kenster

Um die Kennwortauthentifizierung auf Benutzerbasis zu deaktivieren, fügen Sie beim OpenSSH-Server diese Zeilen zur Datei sshd_config hinzu :

Match user someuser PasswordAuthentication no 

Beachten Sie die sshd_config Handbuch für weitere Einzelheiten. Stellen Sie sicher, dass Sie nach dem Bearbeiten von sshd_config sshd neu starten.

Wie ich in der ursprünglichen Frage und in vielen Kommentaren sage, habe ich keinen Zugriff auf `/ etc / ssh / sshd_config`. user137369 vor 9 Jahren 2
Und es wäre egal, wenn du es tust. Dies ist nicht "pro Benutzer". Dies ist systemweit. RichieHH vor 5 Jahren 0