Völlig neu in Linux und Ubnuntu. Einrichten einer Maschine für Deep Learning / Neuronale Netze. Bisher läuft es gut. Habe alles installiert und läuft. Ich möchte in der Lage sein, von meinem Mac-Laptop aus zu sshen, um das System zu verwenden. Ich habe openssh installiert und das funktioniert.
Beim Neustart des Computers wird der SSH-Server jedoch nicht neu gestartet. Ich überprüfe mit sudo service ssh status
und es meldet und Fehler. Ich kann es dann starten und alles funktioniert gut.
Mein erster Gedanke war, dass ich sagen muss, dass es beim Neustart gestartet werden soll, und ich habe diesen Thread gefunden, der besagt, dass es standardmäßig gestartet werden soll und ich kein Chrontab oder ähnliches hinzufügen muss. Ich glaube also nicht, dass es das ist.
Dann habe ich diesen Thread gefunden, der die Verwendung des Befehls vorschlägt sudo update-rc.d ssh defaults
, aber dieser Thread ist ziemlich alt und es scheint, dass die Antwort vielleicht schon damals nicht richtig war?
Also dann fand ich diesen Thread , der die empfehlen , auszukommen ListenAddress
Zeile in der sshd_config - Datei. Grundsätzlich heißt es, dass bei Verwendung der ListenAddress möglicherweise versucht wird, die IP-Adresse abzurufen, bevor sie vom DCHP zugewiesen wurde, sodass der Start fehlschlägt. Welches macht Sinn. Aber ich brauche diesen Parameter, damit meine Portweiterleitung über mein Heimnetzwerk funktioniert.
Diese Dokumentation unter dem Eintrag für ListenAddress besagt das
The default is to listen on all local addresses.
Vielleicht brauche ich es nicht, damit die Portweiterleitung funktioniert?
Ich bin dem vorherigen Thread zu diesem Fehlerbericht gefolgt, der ebenfalls ziemlich alt ist, aber vorschlägt, den Netzwerkmanager zu verwenden, um ssh jedes Mal neu zu starten, wenn der Netzwerkmanager eine neue IP erhält.
echo /etc/init.d/ssh restart > /etc/NetworkManager/dispatcher.d/10ssh
chmod 755 /etc/NetworkManager/dispatcher.d/10ssh
Das ist viel mehr, als dieser Noobie an dieser Stelle beurteilen kann. Ist das sicher Ist das der Weg dies zu tun? Wurde in den letzten 7 Jahren etwas anderes erarbeitet?
Jeder Rat wäre toll. Vielen Dank.
systemctl status ssh
ausgegeben?systemctl status NetworkManager-wait-online.service
Antworten:
Hast du gerade versucht einfach einzustellen
?
So habe ich mein ssh so eingestellt, dass es beim Start läuft.
**** Ich gehe in den obigen Teil der Antwort, falls es für andere hilfreich ist, die auf diesen Beitrag stoßen ****
Zitiere meinen Kommentar von oben:
Die ListenAddress hat nichts mit Port-Forwading zu tun. Die ListenAdress kann für einen Server verwendet werden, der mit mehreren IP-Adressen über eine oder mehrere NICs konfiguriert ist. Zitieren von hier (die ganze Seite ist eine gute Erklärung): https://www.cyberciti.biz/tips/howto-openssh-sshd-listen-multiple-ip-address.html
Damit können einige Ihrer mehreren IP-Adressen SSH-Verbindungen akzeptieren. Ich vermute, Sie haben die ListenAddress entweder auf Ihre öffentliche IP-Adresse oder auf die interne IP-Adresse Ihres Routers eingestellt. Wenn Sie die lokale IP-Adresse Ihres Servers eingestellt hätten, hätte dies problemlos funktioniert. Unabhängig davon wissen Sie jetzt, wie ListenAddress funktioniert, und sind bereit, wenn Sie einen komplizierteren Server konfigurieren müssen. Ich bin froh zu hören, dass du Dinge zum Laufen gebracht hast.
quelle
ls -l /etc/systemd/system/sshd.service
Da die vorgeschlagene Lösung für mich nicht funktionierte, stellte ich schließlich fest, dass ein zusätzlicher Befehl erforderlich ist, um SSH beim Booten zu starten:
Einige erwähnten, dass dieser Befehl:
sollte anstelle dieses Befehls ausgeführt werden:
quelle