MoonKid
Anmeldungsdatum: 9. Februar 2012
Beiträge: 1379
|
Irgendwie und irgendwann (keine Ahnung mehr wie) hab ich mal sshd deaktiviert. Jedenfalls ist er in /etc/rc*.d nicht mehr zu findet und läuft auch tatsächlich nicht, nach dem Hochfahren. Sollte auch so sein - bisher. Jetzt will ich den wieder haben. Ist es tatsächlich so einfach?
In /etc/rc2.d (für hochfahren) und /etc/rc0.d (runterfahren) einen symlink nach ../init.d/ssh anlegen. Korrekt?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
MoonKid schrieb: Irgendwie und irgendwann (keine Ahnung mehr wie) hab ich mal sshd deaktiviert. Jedenfalls ist er in /etc/rc*.d nicht mehr zu findet und läuft auch tatsächlich nicht, nach dem Hochfahren. Sollte auch so sein - bisher. Jetzt will ich den wieder haben. Ist es tatsächlich so einfach?
In /etc/rc2.d (für hochfahren) und /etc/rc0.d (runterfahren) einen symlink nach ../init.d/ssh anlegen. Korrekt?
In der Theorie schon. In der Praxis verwendet man update-rc.d:
| # Dienst aktivieren
update-rc.d <DIENST> defaults
# Dienst deaktivieren
update-rc.d -f <DIENST> remove
|
(Setzt sysvinit als Init-System voraus. Mit systemd funktioniert das noch ein bisschen anders.)
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Jetzt will ich den wieder haben. Ist es tatsächlich so einfach?
Neuinstallation hätte im Zweifelsfalle wohl auch gereicht:
sudo apt-get install --reinstall openssh-server
|
MoonKid
(Themenstarter)
Anmeldungsdatum: 9. Februar 2012
Beiträge: 1379
|
So ganz haut es scheinbar nicht hin. Das ist die aktuelle Situation:
| user@TONNE:~$ ll /etc/init.d/ssh*
-rwxr-xr-x 1 root root 4077 Mai 2 2014 /etc/init.d/ssh*
user@TONNE:~$ ll /etc/rc*.d/*ssh*
lrwxrwxrwx 1 root root 13 Aug 29 20:44 /etc/rc0.d/K20ssh -> ../init.d/ssh*
lrwxrwxrwx 1 root root 13 Aug 29 20:44 /etc/rc1.d/K20ssh -> ../init.d/ssh*
lrwxrwxrwx 1 root root 13 Aug 29 20:44 /etc/rc2.d/S20ssh -> ../init.d/ssh*
lrwxrwxrwx 1 root root 13 Aug 29 20:44 /etc/rc3.d/S20ssh -> ../init.d/ssh*
lrwxrwxrwx 1 root root 13 Aug 29 20:44 /etc/rc4.d/S20ssh -> ../init.d/ssh*
lrwxrwxrwx 1 root root 13 Aug 29 20:44 /etc/rc5.d/S20ssh -> ../init.d/ssh*
lrwxrwxrwx 1 root root 13 Aug 29 20:44 /etc/rc6.d/K20ssh -> ../init.d/ssh*
|
Hier mit update-rc.d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | user@TONNE:/etc/init.d$ sudo update-rc.d -f ssh remove
[sudo] password for user:
Removing any system startup links for /etc/init.d/ssh ...
/etc/rc0.d/K20ssh
/etc/rc1.d/K20ssh
/etc/rc2.d/S20ssh
/etc/rc3.d/S20ssh
/etc/rc4.d/S20ssh
/etc/rc5.d/S20ssh
/etc/rc6.d/K20ssh
user@TONNE:/etc/init.d$ sudo update-rc.d ssh defaults
update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match ssh Default-Stop values (none)
Adding system startup for /etc/init.d/ssh ...
/etc/rc0.d/K20ssh -> ../init.d/ssh
/etc/rc1.d/K20ssh -> ../init.d/ssh
/etc/rc6.d/K20ssh -> ../init.d/ssh
/etc/rc2.d/S20ssh -> ../init.d/ssh
/etc/rc3.d/S20ssh -> ../init.d/ssh
/etc/rc4.d/S20ssh -> ../init.d/ssh
/etc/rc5.d/S20ssh -> ../init.d/ssh
|
Nach einem reboot ist ssh weiterhin nicht am Laufen und ich muss ihn explizit anschmeißen. Ein reinstall geht vielleicht, aber wäre etwas overhead. Ich möchte die Situation lieber nutzen, um zu verstehen, was hier schief läuft.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13893
|
MoonKid schrieb: Ich möchte die Situation lieber nutzen, um zu verstehen, was hier schief läuft.
Ich denke Du musst die "INIT INFO" aus dem Script berücksichtigen*). Z. B.:
### BEGIN INIT INFO
# Provides: sshd
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: OpenBSD Secure Shell server
### END INIT INFO
Abhängigkeiten (über die sequence number) für die S-symlinks und ob man überhaupt K-symlinks hier benötigt. Wenn nicht*), dann wäre m. E. ein reinstall doch besser, denn dann werden die erforderlichen symlinks unter Berücksichtigung der Abhängigkeiten schon so angelegt.
|
MoonKid
(Themenstarter)
Anmeldungsdatum: 9. Februar 2012
Beiträge: 1379
|
Was soll mir die INIT INFO sagen?
syslog muss vorher gestartet bzw gestoppt werden? Klingt einfach.
Sowas zu interpretieren gehört zur Aufgabe von update-rc.d. Was macht update-rc.d den sonst sinnvolles (Frage ernst gemeint!)? 😀
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13893
|
MoonKid schrieb: Was macht update-rc.d den sonst sinnvolles (Frage ernst gemeint!)? 😀
Das steht z. B. in der manpage von update-rc.d (Antwort ernst gemeint!). 😀
|
MoonKid
(Themenstarter)
Anmeldungsdatum: 9. Februar 2012
Beiträge: 1379
|
install and remove System-V style init script links
Dazu gehört für mich auch solche INIT-INFO zu berücksichtigen. Warum tut er das nicht?
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13893
|
MoonKid schrieb: Warum tut er das nicht?
Weil Du update-rc.d nicht richtig ausgeführt/angewendet hast, obwohl er dich u. a. mit:
... update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match ssh Default-Stop values (none)
, auch darauf hingewiesen hat.
|
MoonKid
(Themenstarter)
Anmeldungsdatum: 9. Februar 2012
Beiträge: 1379
|
lubux schrieb: ... update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match ssh Default-Stop values (none)
In der INIT INFO sind run-level für stop definiert, in dem es einfach leer gelasen wird (also none). Das hab ich schon verstanden.
Warum setzt update-rc.d dann nicht seine default Werte dort ein? Außerdem ist es nur eine Warnung und kein Error. Eine Warnung sollte nicht dazu führen, dass eine Anforderung des Users nicht ausgeführt wird. Wird sie nicht ausgeführt, muss da ein Fehler bzw. eine andere deutliche Aussage dazu her. In keiner der Meldungen kann ich erkennen, dass ssh nicht ordnungsgemäßg wieder in die runlevel Ordner eingebaut wurde.
Stattdessen muss ich erst einen reboot machen, um das herauszufinden. Im übrigen führt auch ein --reinstall nicht zum Ergebnis. sshd bleibt weiterhin inaktiv und muss erst von mir explizit gestartet werden.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13893
|
MoonKid schrieb: ... sshd bleibt weiterhin inaktiv und muss erst von mir explizit gestartet werden.
Kannst Du evtl. in der syslog etwas erkennen, betr. nicht starten (Fehlstart) von sshd? Kann es sein, dass auch an der sshd_config etwas verändert worden ist, das jetzt diese Probleme verursacht? EDIT: Hast Du vor dem --reinstall, die symlinks in den run-levels gelöscht? Evtl. ist --reinstall auch nicht das Richtige, wenn an den run-levels etwas "verändert" worden ist. Das kann man ja durch vergleichen feststellen. Z. B.:
~ $ ls -la /etc/rc*.d | grep -i ssh
lrwxrwxrwx 1 root root 13 Feb 16 2015 S02ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root 13 Feb 16 2015 S02ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root 13 Feb 16 2015 S02ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root 13 Feb 16 2015 S02ssh -> ../init.d/ssh
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Bin unterwegs, aber SSH wird bei 14.04 über Upstart und nicht SysInitIV gesteuert. Prüfe gemäß Artikel, ob es nicht mit einer override-Datei deaktiviert wurde.
|
MoonKid
(Themenstarter)
Anmeldungsdatum: 9. Februar 2012
Beiträge: 1379
|
Upstart... Ja, das kommt mir bekannt vor. Da hab ich damals wahrscheinlich rumgefuscht. Eine override-Datei existiert nicht und die ssh.conf ist die default (hatte ja ein --reinstall).
Hab die rc.d Teile mal entfernt. user@TONNE:/etc/init$ sudo update-rc.d -f ssh remove
Removing any system startup links for /etc/init.d/ssh ...
user@TONNE:/etc/init$ cat ssh.conf
# ssh - OpenBSD Secure Shell server
#
# The OpenSSH server provides secure shell access to the system.
description "OpenSSH server"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
respawn limit 10 5
umask 022
env SSH_SIGSTOP=1
expect stop
# 'sshd -D' leaks stderr and confuses things in conjunction with 'console log'
console none
pre-start script
test -x /usr/sbin/sshd || { stop; exit 0; }
test -e /etc/ssh/sshd_not_to_be_run && { stop; exit 0; }
mkdir -p -m0755 /var/run/sshd
end script
# if you used to set SSHD_OPTS in /etc/default/ssh, you can change the
# 'exec' line here instead
exec /usr/sbin/sshd -D Müsste ja eigentlich funktionieren...
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
Wie sieht es denn mit der /etc/ssh/sshd_not_to_be_run aus? Existiert die? Was steht in der /var/log/upstart/ssh?
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Hast du mal nach override gegrept, um sicherzugehen? reinstall löscht keine Konfiguration, dazu kannst du purge und install nehmen.
|