Zugang für interaktive Sitzungen

Einführung

Als Zugang für interaktive Sitzungen via ssh können sich Nutzer*innen mit ihrem TechFak-Benutzernamen mit der Maschine shell.techfak.de verbinden. Diese ist als Durchgangsmaschine gedacht um sich mit weiteren Rechnern innerhalb des TechFak-Netzwerkes interaktiv zu verbinden. Alle Ressourcen wie z.B. compute, eine eigene Workstation oder ein Labor-Computer innerhalb des Netzwerkes sind wie üblich erreichbar.

ACHTUNG: shell.techfak.de ist für jegliche Art von Langzeitarbeiten wie Programmieren, Berechnungen oder Dokumentenbearbeitung ungeeignet. Die Maschine dient lediglich als Verbindung zwischen dem Internet und dem TechFak-Netzwerk. Für genannte Einsatzzwecke benutze bitte die oben genannten Rechner.

Temporäres home/-Verzeichnis

Bei jedem Login wird ein temporäres Arbeitsverzeichnis für dich angelegt, welches nach dem Beenden einer Verbindung automatisch gelöscht wird. Da die Maschine sowieso nicht für langfristige Arbeiten genutzt werden sollte gibt es keinerlei Bedarf Dateien permanent speichern zu können.

ACHTUNG: Deine Dateien auf shell.techfak.de bleiben nach Beenden der Verbindung nicht erhalten.

Beschränkte Ausführbarkeit von Prozessen

Prozesse auf shell.techfak.de sind an deine aktuelle Session gebunden, weshalb es nicht möglich ist Hintergrundprozesse zu starten. Für solche Fälle verbindest Du dich bitte mit compute wie unten beschrieben.

Zugriff per SSH-Schlüsselpaar

Der Zugriff auf die Maschine erfolgt mithilfe des Kommandos ssh TechFak-UserName@shell.techfak.de und einer Authentifizierung per SSH public key.

Dieser Mechanismus ermöglicht das Verbinden mithilfe eines SSH-Schlüsselpaars anstelle der Eingabe eines Passwortes. Bei der Nutzung eines Agenten ist der komplette Prozess ohne Interaktion möglich.

Gewöhnliche Passwort-Authentifizierung ist nicht möglich. Somit kann ein Angreifer nicht einfach per Brute-Force ein schwaches Passwort erraten. Das Erraten eines SSH-Schlüssels ist sehr viel schwieriger und typischerweise zu aufwendig.

ACHTUNG: Anders gesagt, das wichtige Element des Login-Prozesses ist der private SSH-Schlüssel, nicht das Passwort.

Die Anleitung zum Erstellen und Einrichten eines Schlüsselpaars findest Du auf der verlinkten Seite.

Aktuelle SSH-fingerprints:

ED25519@256bit:	0tsVGENxjW1Twqrg7FPQ6xrZ+e6ZcQ3rLU79+3I06Jo	(Hash=SHA256@b64)
		3c:3c:d6:69:c5:1d:20:58:5a:d8:d7:d9:96:7c:41:04	(Hash=MD5@hex)
RSA@4096bit:	mwj9NZ8Ay5kVpT1iMJdg73Acs4BT57wobFXbznPwQos	(Hash=SHA256@b64)
		2b:68:68:2b:ee:b6:4d:72:7d:e5:9b:c3:c2:c7:de:48 (Hash=MD5@hex)

Anleitungen

Hier findest Du einige typische Anwendungsfälle für shell.techfak.de mit entsprechenden Anleitungen.

Die Anleitung zum Erstellen und Einrichten eines Schlüsselpaars findest Du auf Grund ihres Umfangs auf der verlinkten separaten Seite.

Speichern des Schlüssels innerhalb eines Agents

Die Eingabe der Passphrase des SSH-Schlüssels bei jedem Login kann auf Dauer anstrengend werden. Durch die Verwendung von ssh-agent musst Du diese nur einmal eingeben, der Agent merkt sich die Passphrase anschließend bis Du die Sitzung auf deiner lokalen Maschine beenden. Teile dem Agenten deinen Schlüssel und das zugehörige Passwort wie folgt mit:

 

$ ssh-add
Enter passphrase for /home/juser/.ssh/id_ed25519:
Identity added: /home/juser/.ssh/id_ed25519 (/home/juser/.ssh/id_ed25519)

Von nun an kannst Du diesen Schlüssel zum Login verwenden ohne die Passphrase erneut eingeben zu müssen.

Verbindung zu compute

Wie bereits in der Einführung erwähnt kannst Du keinerlei dauerhafte Arbeit auf shell.techfak.de betreiben. Hierfür ist die Verbindung zu einer weiteren TechFak-Maschine, z.B. compute, notwendig. Von außerhalb sind somit die beiden folgen Schritte notwendig:

  1. Login auf shell

    $ ssh juser@shell.techfak.de
     
    ######################################################################
    #### WELCOME TO THE FACULTY OF TECHNOLOGY AT BIELEFELD UNIVERSITY ####
    ######################################################################
     
     ▞▀▖▀▛▘▀▛▘▛▀▘▙ ▌▀▛▘▜▘▞▀▖▙ ▌ This is an intermediate machine. Your home
     ▙▄▌ ▌  ▌ ▙▄ ▌▌▌ ▌ ▐ ▌ ▌▌▌▌ here is temporary and will not be preserved
     ▌ ▌ ▌  ▌ ▌  ▌▝▌ ▌ ▐ ▌ ▌▌▝▌ on logout. Connect to compute or your local
     ▘ ▘ ▘  ▘ ▀▀▘▘ ▘ ▘ ▀▘▝▀ ▘ ▘ workstation to access your permanent home.
     
     Don't use this machine for file transfers. See http://techfak.net/remote
     for advices on that and general usage tips regarding this service.        
     
    juser@shell:~$
  2. Weiterverbindung zu compute

    Für die Verbindung zu compute musst Du Dein normales Rechner-Passwort (auch 'Kerberos-Passwort' genannt) verwenden. 

    juser@shell:~$ ssh compute
    juser@compute's password:
    Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.18.1-tf1-ll x86_64)
     
     * Documentation:  https://help.ubuntu.com/
     
    juser@bonnie:~$

Lesen von E-Mails

Um das schnelle Lesen von E-Mails zu ermöglichen ist mutt vorinstalliert. Dieses eignet sich für einen schnellen Blick in den Posteingang oder zum Verfassen einer kurzen Nachricht. Da die Verwendung von screen o.Ä. aus oben genannten Gründen nicht möglich ist empfehlen wir hierfür die Weiterverbindung zu compute oder das Einrichten eines lokalen Mail-Clients.

Nach dem Starten von mutt ist die Eingabe des Mail-Passworts (auch 'Service-Passwort' genannt) erforderlich um die eigenen E-Mails per IMAP abzurufen. Das Gleiche gilt für den Versand per SMTP.

Instant messaging

Um eine schnelle Nachricht per XMPP schicken zu können ist der Kommandozeilenclient mcabber vorinstalliert. Wie für das Lesen von E-Mails gilt hier ebenfalls: Falls Du Deine Konversationen innerhalb einer screen-Session haben möchtest ist dies auf shell.techfak.de nicht möglich.

Weiterleiten von Ressourcen an den Heimrechner.

Falls Du dich häufiger mit anderen Hosts innerhalb des TechFak-Netzwerkes von außerhalb verbindest ist es möglich eine entsprechende Weiterleitung auf einer lokalen Maschine einzurichten. Diese dient dann als Verknüpfung von Deiner lokalen Maschine zu dem entsprechenden Rechner innerhalb der TechFak ohne sich explizit auf shell.techfak.de einloggen zu müssen.

SSH auf einen anderen Host innerhalb des TechFak-Netzwerkes

  1. Vorbereiten der .ssh/config

    Mithilfe der ProxyCommand Konfigurationsoption ist es möglich ein Kommando anzugeben, welches ssh benutzt um die Verbindung herzustellen. Deine .ssh/config-Datei sollte dafür einen solchen Eintrag enthalten:  

    Host techfak-compute
    	Hostname compute
    	User juser
    	ProxyCommand ssh -W %h:%p juser@shell.techfak.de

    In diesem Fall ruft ssh sich selber auf um sich auf shell.techfak.de einzuloggen, von dort die Verbindung zu compute herzustellen und alle Daten an Dein initiales ssh-Kommando weiterzuleiten.

  2. Verbinde dich direkt mit compute.techfak.de mithilfe der obigen .ssh/config

    $ ssh techfak-compute
    juser@compute.techfak.de's password:
    Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.18.1-tf1-ll x86_64)
     
     * Documentation:  https://help.ubuntu.com/
     
    juser@clyde:~$

    Falls Du einen SSH-Agenten aktiviert hast musst Du nur Dein Kerberos- oder Rechner-Passwort eingeben um dich auf compute einzuloggen.

Zugriff auf einen Webserver innerhalb des TechFak-Netzwerkes

Einige interne Webserver sind nur innerhalb des TechFak-Netzwerkes erreichbar, es kann jedoch eine ähnliche Prozedur wie oben angewandt werden um den Zugriff an die lokale Maschine weiterzuleiten, selbst wenn diese sich nicht innerhalb des TechFak-Netzwerkes befindet.

  1. Vorbereiten der .ssh/config

    Füge den entsprechenden Hostnamen in die LocalForward Option ein: 

    Host techfak-forward-wiki
    	LocalForward localhost:8080 wiki.techfak.net:80
    	HostKeyAlias shell.techfak.de
    	Hostname shell.techfak.de
    	ExitOnForwardFailure yes
    	User juser

    ssh wird nun eine Verbindung zu wiki.techfak.net:80 über shell.techfak.de, welches sich im TechFak-Netzwerk befindet, öffnen und diese an den lokalen Port localhost:8080 binden.

  2. Verbinden Sie sich mit shell.techfak.de und er obigen .ssh/config 

    $ ssh techfak-forward-wiki
    [...]

    Lasse diese Sitzung im Hintergrund offen um den entsprechenden Host, in diesem Beispiel unser internes Wiki, unter localhost:8080 zu erreichen.

  3. Überprüfe die Verbindung

    $ nc localhost 8080 | head -2
    HEAD / HTTP/1.0
     
    HTTP/1.1 200 OK
    Date: Sat, 05 Mar 2016 12:00:34 GMT

    shell.techfak.de kann ebenfalls benutzt werden um jegliche andere Ressourcen an die lokale Maschine weiterzuleiten.

    Des Weiteren kann diese Technik im Notfall benutzt werden, falls z.B. direkter Zugriff auf einen spezifischen Port, wie IMAP o.Ä., von Deiner Netzwerk-Umgebung aus nicht möglich sein sollte. Dies stellt jedoch keinerlei permanente Lösung dar. Falls Dein Netzwerk-Provider gewisse Zugriffe für Dich gesperrt haben sollte solltest Du dies mit ihm direkt klären, anstatt das Problem nur zu umgehen.

Datei-Transfer

ACHTUNG: shell.techfak.de ist nicht dafür gedacht Datei-Transfers durchzuführen, weder direkt noch getunnelt. Für diese Zwecke gibt es die eigene Maschine files.techfak.de. Bitte lies die entsprechende Dokumentation für eventuelle Fragen zu diesem Bereich.

Weitere Software

Du könntest es als komfortabler empfinden, falls zusätzliche Software auf shell.techfak.de installiert werden würde. Es ist jedoch sehr unwahrscheinlich, dass wir solchen Anfragen nachkommen werden. Aufgrund der temporären Natur der Maschine sind die meisten Software-Pakete nutzlos. Benutze bitte z.B. compute für Deine Arbeit, wo Dir, wie auf jeder anderen Netboot-Maschine, sämtliche Pakete zur Verfügung stehen.