# Keinen SSH Zugang nach Rootserver reboot



## smokerholic (21. Juli 2007)

Hallo zusammen,

folgendes Problem:
Habe vor kurzem meinen Root server (debian etch) rebooten lassen, dabei ist der SSH nicht angesprungen aber der server ist erfolgreich hochgefahren.

Mein Anbieter erlaubt es mir einen sogenannten rescue modus zu nutzen.
Kann also per SSH wenn der Root sich im rescue modus befindet, einloggen und meine festplatte mounten. Jetzt habe ich Zugang per SSH auf meine Daten halt nur im rescue modus. 

Denn sshd von dort aus, per hand zu starten habe ich versucht:
rescuecd:/mnt/usr/sbin# sshd start
Extra argument start.

oder 

rescuecd:/mnt/etc/init.d/sshd start 
Extra argument start.

Glaube nicht das mir, dass per Hand starten was bringt, da ich den server wieder rebooten muss, um den server ohne den rescue modus hochzufaren. Und dabei geht wieder der SSH Zugang verloren.

Ich denke dass irgendeine Scriptfile die verantwortlich dafür ist, dass der sshd automatisch nach dem rebooten gestartet wird nicht richtig funktioniert.

Kann mir Jemand pls sagen wat >>>Extra argument start<<< heisst ?

Die Logfiles in var/log/ weisen auch keine nennenswerten Fehlermeldungen auf.

Mein Rootserver Anbieter weigert sich dieses Problem zu beheben, er meinte ich bin für den SSH selbst verantwortlich.

Hoffe ich hab mich verständlich ausgedrückt und hoffe auch das mir geholfen werden kann.


----------



## Dr Dau (22. Juli 2007)

Hallo!

Der Daemon lässt sich mit "sshd start" nicht starten.
Dazu gibt es das Script "ssh" (so heisst es jedenfalls unter Sarge) in "/etc/init.d" (im Rescure-Modus müsste es "/mnt/etc/init.d" sein).
Allerdings nützt es Dir nichts dieses aufzurufen, weil die darin enthaltenen Pfade dank dem Rescure-Modus (/mnt) nicht stimmen.
Du kannst aber ja mal gucken ob das Script überhaupt vorhanden ist.
Es soll auch schon vorgekommen sein dass das Script leer war, also ruhig mal mit Deinem bevorzugten Editor reinschauen.

Gruss Dr Dau


----------



## andy72 (22. Juli 2007)

...oder man schaut mal, ob "which sshd" was bringt.
Wenn ja,und das Script Tatsächlich Leer ist (was ich nicht gehört habe, dass das vorkommt) reicht auch ein "sshd &" in der Konsole (Bash) um den Server zu starten.

Um das Problem dann nach dem Rescue-Mode zu beheben, könntest Du bei NICHT vorhandensein des Startscriptes in /etc/init.d an der Konsole auch folgendes tun:


```
export PWD = pwd;
cat > /mnt/etc/init.d/sshd << "EOF"
#!/bin/sh
exec 'which sshd'
EOF
cd /mnt/etc/init.d
ln sshd ../rc3.d/S99sshd 
cd $PWD
```
Damit hast Du - wenn auch nur GANZ primitiv - erstmal wieder ein Startscript für sshd,
und einen symbolischen Link darauf, um es in den Start-Vorgang in Runlevel 3 auszuführen 
nachdem der Server im Normalen Modus neu gestartet wurde.

LG
Andy


----------



## smokerholic (22. Juli 2007)

Hi all,

also hab nachgeschaut ob der ssh script in mnt/etc/init.d/ vorhanden ist.
Er ist vorhanden und sogar mit Inhalt:

```
#! /bin/sh

set -e

# /etc/init.d/ssh: start and stop the OpenBSD "secure shell(tm)" daemon

test -x /usr/sbin/sshd || exit 0
( /usr/sbin/sshd -\? 2>&1 | grep -q OpenSSH ) 2>/dev/null || exit 0

if test -f /etc/default/ssh; then
    . /etc/default/ssh
fi

check_for_no_start() {
    # forget it if we're trying to start, and /etc/ssh/sshd_not_to_be_run exists
    if [ -e /etc/ssh/sshd_not_to_be_run ]; then 
	echo "OpenBSD Secure Shell server not in use (/etc/ssh/sshd_not_to_be_run)"
	exit 0
    fi
}

check_privsep_dir() {
    # Create the PrivSep empty dir if necessary
    if [ ! -d /var/run/sshd ]; then
	mkdir /var/run/sshd
	chmod 0755 /var/run/sshd
    fi
}

check_config() {
    if [ ! -e /etc/ssh/sshd_not_to_be_run ]; then
	/usr/sbin/sshd -t || exit 1
    fi
}

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in
  start)
	check_for_no_start
	check_privsep_dir
        echo -n "Starting OpenBSD Secure Shell server: sshd"
	start-stop-daemon --start --quiet --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS
        echo "."
	;;
  stop)
        echo -n "Stopping OpenBSD Secure Shell server: sshd"
	start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/sshd.pid
        echo "."
	;;

  reload|force-reload)
	check_for_no_start
	check_config
        echo -n "Reloading OpenBSD Secure Shell server's configuration"
	start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd
	echo "."
	;;

  restart)
	check_config
        echo -n "Restarting OpenBSD Secure Shell server: sshd"
	start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile /var/run/sshd.pid
	check_for_no_start
	check_privsep_dir
	start-stop-daemon --start --quiet --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS
	echo "."
	;;

  *)
	echo "Usage: /etc/init.d/ssh {start|stop|reload|force-reload|restart}"
	exit 1
esac

exit 0
```

Ist da der Fehler drinne ?


----------



## smokerholic (22. Juli 2007)

Und nochwas, ich habe für ein Webinterface LibSSH 2 und PECL SSH installiert.
Haben die vielleicht mit dem Problem wat zu tun ?


----------



## andy72 (22. Juli 2007)

Das Start-Script ist erstmal in Ordnung, ich sehe nur nicht, warum Du den Fehler bekommst, dass "id" nicht gefunden wurde ...nichts desto trotz hat "id" aber nichtsmit SSH zu tun, Du solltest das Script eigentlich starten können, wenn der Server nicht im Rescue-Modus ist. 

Abgesehen davon,hast Du, wie oben beschrieben versucht, ssh direkt auszuführen.
Der Aufruf mit dem Parameter "start"/"stop"/"reload" funktioniert NUR im Start-Script.


```
/etc/init.d/sshd start
```

LG
Andy


----------



## smokerholic (22. Juli 2007)

Hi nochmal,

Kannste mir pls sagen wie ich den startscript ohne den rescue modus starte hab ja dann kein SSH Zugriff.

Sorry bin noch am lernen.


----------



## andy72 (22. Juli 2007)

Und genau DA ist Dein Problem:
Dein Provider MUSS dafür Sorge tragen, dass Du Deinen Server nutzen kannst, und da gehört eine funktionierende Installation dazu - so auch SSH und andere Dienste, wenn diese in Deinem Paket so vorgesehen sind. Wenn er Dir ein Eigenverschulden Deinerseits nicht nachweisen kann (dass Du Zb SSH neu - oder deinstalliert hast) muss er Dir den Dienst unentgeltlich zur Verfügung stellen. Also, am besten erstmal im Support anrufen, und denen erklären, dass Du ohne SSH zu haben mit dem Server nichts anfangen kannst, da der Root-Server sonst sinnlos ist - mit FTP kannst du auch weitaus billigeren Webspace haben.


----------

