Auf der Hostseite: Host-Key abrufen, Fingerprint vergleichen und vertrauen oder ablehnen. Weicht ein Key vom vertrauten ab, erscheint eine deutliche Warnung, und Annehmen geht nur mit Haekchen und frischer Bestaetigung. Danach Bootstrap per Einmal-Passwort oder per Befehl und Verbindungspruefung, jeweils mit Fortschrittsanzeige. Der sshd-Befund empfiehlt prohibit-password, wenn root sich per Passwort anmelden darf - nur als Hinweis, geaendert wird nichts. E2E im gebauten Stand mit Worker gegen ein echtes sshd. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 lines
829 B
TypeScript
20 lines
829 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { sshdHinweise } from "@/lib/sshd-hinweise";
|
|
|
|
describe("sshd-Hinweise (#010)", () => {
|
|
it("empfiehlt prohibit-password, wenn root per Passwort darf", () => {
|
|
expect(sshdHinweise({ permitRootLogin: "yes" })[0]).toMatchObject({ stufe: "warnung" });
|
|
expect(sshdHinweise({ permitRootLogin: "without-password" })).toEqual([]);
|
|
});
|
|
|
|
it("warnt, wenn sshd authorized_keys gar nicht liest", () => {
|
|
expect(sshdHinweise({ authorizedKeysFile: ".ssh/authorized_keys .ssh/authorized_keys2" })).toEqual([]);
|
|
expect(sshdHinweise({ authorizedKeysFile: "/etc/ssh/keys/%u" })[0]).toMatchObject({ stufe: "gefahr" });
|
|
});
|
|
|
|
it("kommt mit fehlenden Angaben zurecht", () => {
|
|
expect(sshdHinweise(null)).toEqual([]);
|
|
expect(sshdHinweise({})).toEqual([]);
|
|
});
|
|
});
|