LTSP - SSH Konsole einrichten

Erstellt irgendwann vor 2006

SSH für LTSP

Auf besagtem SATA-Treiber-Server läuft inzwischen auch ein LTSP-Server. Da man sich nicht immer gleich auf der gafischen Oberfläche anmelden möchte, oder für Schulungszwecke nur auf der Konsole gearbeitet werden soll, wurde der Ruf nach einer lokalen Konsole, die aber eine Verbindung zum Server herstellt laut.
LTSP bietet diese Option bereits, allerdings nur über telnet. Dieses telnet ist aber NICHT verschlüsselt und somit kann jeder, der mit im Netzwerk hängt mitlesen (dieser Computerraum hat seine PCs noch über ein Hub vernetzt).
Im Internet selber hab ich bisher noch keine HowTos dazu gefunden, weshalb ich mal wieder selbst aktiv werden musste und eine Lösung zusammenbasteln musste.

Was ist zu tun?

Die Scripte, die für das Erstellen lokaler Konsolen unter LTSP zuständig sind liegen (bei SuSE) unter /opt/ltsp/i386/etc/screen.d und hier muss nun ein neues Script erstellt werden. Bei mir hab ich es einfach sshlogin genannt und mit folgendem Inhalt versehen:

#!/bin/bash
#
# Script for starting one or more ssh sessions
#

#
# Get the lts.conf entries, and assign them to shell
# variables.
#
eval `/bin/getltscfg -a`

#
# Setup the terminal type
#
export TERM=vt220

#
# Get this terminal name, to display on the top line of the screen
#
TTY=`/usr/bin/basename \`/usr/bin/tty\``
[ "${TTY}" = "console" ] && TTY="tty1"    # Special case for first screen

#
# Clear the screen, to place cursor at the top
#
/usr/bin/clear

#
# Echo this message, telling user how to proceed.
#
echo -n "Screen:${TTY} - <enter> druecken um die Verbindung zum Server herzustellen."
read CMD

#
# Clear the screen before launching ssh
#
/usr/bin/clear

#
# Ask for Username
#
echo -n "Bitte Usernamen eingeben: "
read deruser

until [ $deruser != "" ]
do
    /usr/bin/clear
    echo -n "Bitte korrekten Usernamen eingeben: "
    read deruser
done

#
# Launch the ssh program.
#
/bin/ssh -o StrictHostKeyChecking=no $deruser@192.168.1.1 # <-- Edit this address

# Brief pause, in case ssh had errors to report
#
echo -n "Please wait..."
/bin/sleep 1

Dieses Script ist eigentlich das Script für telnet, ich habe es aber auf meine Bedürfnisse umgeschrieben. Jetzt muss man also zunächst Enter drücken, danach seinen Usernamen eigeben und schließlich sein Passwort, um sich mit dem Server zu verbinden. In dieser Version kann man noch nicht in der lts.conf die IP, auf die der SSH-Client connecten soll übergeben, sondern muss sich mit der fest im Script verankerten IP zufrieden geben. In den nächsten Tagen wird hier aber auch die Lösung erscheinen, mit der man die IP des Servers als Parameter übergeben kann.

Jetzt fehlt nurnoch ein Eintrag in die lts.conf (in /opt/ltsp/i386/etc), der LTSP anweist auf die zweite Konsole die besagte SSH-Konsole zu legen. Dazu einfach die lts.conf so bearbeiten, dass die folgenden Einträge vorhanden sind:

SCREEN_01 = startx
SCREEN_02 = sshlogin

Das wars.

Wie funktionierts?

So wenn ihr jetzt etwas falsch gemacht hat, dann soll es *puff* sagen ;) - Ok, also ab jetzt sollte man mit STRG+ALT+F2 auf die zweite Konsole gelangen können und in der ersten Zeile am Monitor folgenden Text vorfinden:
Screen: 0.ws01.ltsp... - <enter> druecken um die Verbindung zum Server herzustellen.
Wenn man jetzt die Enter-Taste drückt wird man aufgefordert seinen Usernamen einzugeben. Wenn man nur Enter drückt ohne eine vorherige Eingabe, so erscheint folgender Text:
Bitte korrekten Usernamen eingeben:
Ansonsten kann man sich jetzt per SSH am Server einloggen und wie auf einer echten Konsole arbeiten.

ToDo

Das Script ist noch nicht ausgereift! Zur Zeit bekommt der User nur ein englisches bzw. amerikanisches Tastaturlayout, wodurch das Tippen von Sonderzeichen zur Qual werden kann - Umlaute gehen natürlich überhauptnicht! Für dieses Problem hab ich leider bisher noch keine Lösung, bin allerdings zuversichtlich eine zu finden (wenn ihr was wisst schreibt mir ne Mail ;).
Das nächste, was mich noch stört ist die geringe Auflösung von nur 640x480, bzw. 80x24 Zeichen. Auch hier sollte es eine Möglichkeit geben diese Auflösung zu beeinflussen - das muss ich mir allerdings auch noch ansehen.
Soweit funktioniert das aber schon recht gut und ich hoffe, das war eine kleine Hilfe, falls jemand auf der Suche nach einer Möglichkeit für SSH und LTSP-Konsolen war.

Seitenanfang