SSH Login aktivieren

Linkstation LN520D: SSHD aktivieren

  1. Als erstes den Buffalo Linkstation ACP Commander runterladen. Es gibt Versionen für Windows, Mac sowie für alle Plattformen eine JAR Version, die mit OpenJDK (Installieren, sofern noch nicht vorhanden) ausgeführt werden kann.
    https://advanxer.com/blog/2013/02/buffalo-linkstation-acp-commander-gui/
  2. Den ACP Commander ausführen
    – Linkstation auswählen, Admin Passwort eingeben, einen Testbefehl (z.B. ls -l), danach auf Go!


    über den Commander kann man also jetzt schon alle möglichen Befehle ausführen, auch ohne telnet/SSH.
  3. Jetzt ein root Passwort setzen indem du auf „Set root PW“ klickst
  4. Neues Passwort für root user eingeben und speichern
  5. „Enable SSH“ Button funktioniert unter LS500D NICHT, da die Startup Scripts für dieses Modell nicht korrekt geschrieben werden. (weshalb es genauer nicht funktioniert, steht weiter unten)
  6. SSHD Startup Script Manuell aktivieren: Im Commander folgende Befehle eingeben:
    Es existiert bereits ein deaktiviertes Startupscript auf der Box. Einfach aktivieren:
    cp /etc/init.d/ssh.bak /etc/init.d/ssh
    Jetzt sshd starten:
    /etc/init.d/ssh start
    Jetzt müsste es einen Output geben, dass die ssh rsa/dsa/etc. Keys generiert worden sind & der SSHD Server gestartet wird:


    Ab jetzt kann man sich bereits per SSH einloggen. Nun noch Service registrieren, damit SSHD nach dem nächsten Bootvorgang automatisch wieder verfügbar ist:
    update-rc.d ssh defaults

Erklärung Problem LS520D SSH / Connection Refused

Obwohl man den Enable SSH Button geklickt & eine Success Meldung erhalten hat, kommt trotz allem „Connection Refused“, wenn man per SSH auf die Linkstation connecten will. Folgendes wird ausgeführt, wenn man den Button klickt:

(Auszug aus dem acpcommander/ACPCommanderGui.class File)

killall sshd

sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/sshd_config
sed -i 's/UsePAM yes/UsePAM no/g' /etc/sshd_config

grep -q '/usr/local/sbin/sshd' /etc/init.d/rcS;
if [ $? -ne 0 ]; then echo -e '
#Start SSH daemon
/usr/local/sbin/sshd' >> /etc/init.d/rcS; fi

Es wird also

  1. sshd gestoppt
  2. das /etc/sshd_config File angepasst
  3. ausserdem noch die Zeile /usr/local/sbin/sshd in das /etc/init.d/rcS hinzugefügt

Problem 1:

/usr/local/sbin/sshd ist der falsche Pfad, sshd befindet sich unter /usr/sbin/sshd

Wenn ich jedoch die Zeile im Startupscript korrigiere:

Aktuelle Config:

cat /etc/init.d/rcS

kommt der Output

#! /bin/sh
#
# rcS
#
# Call all S??* scripts in /etc/rcS.d/ in numerical/alphabetical order
#

exec /etc/init.d/rc S

#Start SSH daemon
/usr/local/sbin/sshd

Letzte Linie mit der falschen sshd Location entfernen:

tail -n 1 "/etc/init.d/rcS" | wc -c | xargs -I {} truncate "/etc/init.d/rcS" -s -{}

Korrekte Line eintragen:

echo -e '/usr/sbin/sshd' >> /etc/init.d/rcS

Und Inhalt wieder Checken.

cat /etc/init.d/rcS

jetzt wäre es korrekt

#! /bin/sh
#
# rcS
#
# Call all S??* scripts in /etc/rcS.d/ in numerical/alphabetical order
#

exec /etc/init.d/rc S

#Start SSH daemon
/usr/sbin/sshd

Nützt aber nichts, da sshd sich nach einem Reboot trotzdem nicht startet.

Lösung:

Auf der Box existiert ein deaktiviertes SSH Startup Script. Dieses einfach aktivieren, danach kann man sshd wie gewohnt starten:

cp /etc/init.d/ssh.bak /etc/init.d/ssh
Jetzt sshd starten:
/etc/init.d/ssh start
Ab jetzt kann man sich bereits per SSH einloggen. Nun noch Service registrieren, damit SSHD nach dem nächsten Bootvorgang automatisch wieder verfügbar ist:
update-rc.d ssh defaults

Problem 2:

Das /etc/sshd_config File existiert nicht, also kann nichts ersetzt werden

das File

cat /etc/sshd_config

hat ebenfalls nicht den gewünschten inhalt (es ist leer oder existiert nicht)

Also noch folgende Lines dazufügen:

touch /etc/sshd_config
echo 'PermitRootLogin yes' >> /etc/sshd_config
echo 'UsePAM no' >> /etc/sshd_config

und neustarten

reboot

Weitere Lösungswege unter http://buffalo.nas-central.org/wiki/Open_Stock_Firmware

nach oben