So führen Sie einen sekundären SSH-Server vorübergehend an einem separaten Port aus

11

Wie kann ein SSH-Daemon an einem anderen Port als dem Standard 22 ausgeführt werden?

Ich habe etwas mit meiner SSH-Konfiguration auf einer Cloud-VM vermasselt, sodass SSH mich jetzt immer zur Eingabe eines Kennworts auffordert. Meine frühen Versuche, dies zu beheben, haben mich gesperrt und mich gezwungen, die Festplatte zu mounten, sie in eine funktionierende VM zu mounten und die Dateien in einen bekannten Arbeitszustand zu versetzen. Es zwingt mich jedoch immer noch, ein Passwort einzugeben.

Ich möchte meinen aktualisieren /etc/ssh/sshd_configund den Haupt-SSH-Daemon neu starten, gegen den ich testen kann, während noch ein anderer mit der alten Konfiguration ausgeführt wird, mit dem ich die Konfiguration zurücksetzen kann, falls der erste mich sperrt. Wie würde ich das machen, speziell unter Ubuntu?

Cerin
quelle
3
Beachten Sie, dass durch das Stoppen sshdkeine hergestellten Verbindungen beendet werden, sodass Sie nicht gesperrt werden, wenn Sie eine vorhandene Sitzung geöffnet haben, bevor Sie Änderungen vornehmen.
Grisha Levit
Erstellen Sie einen Snapshot der virtuellen Maschine. Wenn Sie die Änderungen rückgängig machen müssen, können Sie dies durch einen Neustart vom Image tun.
AE
2
"configuration on a cloud VM"- Dann benutzen Sie einfach die Konsole, die sie Ihnen geben - kein 2. SSH erforderlich. Die Konsole ist speziell für den Fall gedacht, dass Sie sich selbst aussperren.
SnakeDoc

Antworten:

19

Sie haben keine Ubuntu-Version erwähnt, daher bin ich mir nicht sicher, welches Init-System Sie verwenden.

Wenn systemd, haben Sie möglicherweise eine Datei /etc/systemd/system/sshd.service. Was Sie als Kopie machen könnten /etc/systemd/system/sshd_alt.service. Passen Sie dann die ExecStartLinie an und fügen Sie ein -p 22000oder etwas hinzu. Danach tun systemctl enable sshd_altund systemctl start sshd_alt. Sie können auch auf eine völlig andere Konfigurationsdatei verweisen.

Sie können eine Kopie auch einfach manuell auf dem Bildschirm starten oder so, wenn dies nur eine einmalige Sache ist. Starten Sie einfach den Bildschirm und machen Sie so etwas /usr/sbin/sshd -D -p 22200. Sie starten einen Ersatz-sshd-Daemon, bis Sie erneut eine Verbindung zu diesem Bildschirm herstellen und den Vorgang beenden können.

Oder wie @EEAA sagte. Trennen Sie die Verbindung einfach nicht. Verwenden Sie eine zweite Sitzung, um zu testen, ob Sie die Verbindung wieder herstellen können.

Zoredache
quelle
11

Mit diesem Befehl können Sie ein sshd an einem alternativen Port starten:

sshd -p 12345

Ersetzen Sie 12345 durch Ihre bevorzugte Portnummer. Wenn dies sshdnicht in Ihrem enthalten ist PATH, müssen Sie möglicherweise den vollständigen Pfadnamen im Befehl verwenden, z /usr/sbin/sshd.

R .. GitHub HÖREN SIE AUF, EIS ZU HELFEN
quelle
1
Unabhängig vom Pfad benötigen Sie / usr / sbin / sshd, andernfalls erhalten Sie nur eine Fehlermeldung: sshd re-exec erfordert die Ausführung mit einem absoluten Pfad
Lenne
1
/ usr / sbin / sshd -p12345 -f path_to_working_cfg.file
Lenne
@Lenne: Ich habe dieses Problem noch nie getroffen.
R .. GitHub STOP HELPING ICE
@R .. Dies kommt von OpenSSH v 3.9 und höher. Weitere Informationen finden Sie unter unix.stackexchange.com/a/109383/21109 .
Jenny D
Wie lächerlich. Sie könnten einfach annehmen, dass derjenige im Pfad richtig ist, wenn er ohne absoluten Pfad ausgeführt wurde, und / oder verwenden, /proc/self/exefalls verfügbar.
R .. GitHub STOP HELPING ICE
9

Lassen Sie einfach eine SSH-Sitzung aktiv und verwenden Sie eine andere, um Ihre Konfigurationsänderungen vorzunehmen. Ihre ursprüngliche Sitzung bleibt verbunden und verfügbar, um Änderungen rückgängig zu machen, wenn Ihre Konfigurationsänderungen etwas beschädigen.

EEAA
quelle
Dabei öffne ich eine Ersatzsitzung für den Fall, dass etwas mit der ersten passiert, bevor die neue Konfiguration funktioniert. Es ist eine so einfache Versicherung, dass Sie die VM nicht retten müssen, wenn Sie versehentlich Ihre Shell schließen, weil Sie beim Drücken von cmd-woder das falsche Fenster fokussiert hatten ctrl-f4.
StvnW