über ssh arbeiten

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
Klaus82
Beiträge: 163
Registriert: 04.02.2012 09:19:21

über ssh arbeiten

Beitrag von Klaus82 » 16.01.2013 16:17:13

Hi Leute,

ich entdecke gerade immer mehr mittels ssh von zu Hause auf meinen PC im Büro zuzugreifen. Ich möchte nun die Funktionsweise besser verstehen.

Ich habe z.B. folgende Situation:
Auf der Arbeit öffne ich ein Terminal und starte darin ein Programm mit einer Ausgabe auf das Terminal, was den aktuellen Stand anzeigt. Dann sperre ich den Bildschirm und gehe nach Hause.
Von zu Hause aus logge ich mich mittels ssh ein. Wie kann ich denn auf das Terminal 'zugreifen', um den aktuellen Stand zu sehen?

Oder was mich umgekehrt wurmt: Ich kann sogar mehr als den Bildschirm sperren, nämlich mich auf der Arbeit 'abmelden', lasse aber den PC laufen. Dann kann ich mich von zu Hause aus immernoch einloggen. Wenn ich nun von zu Hause mittels ssh eingeloggt bin und dann die ssh Verbindung beende, dann... ? Ist das wieder wie abgemeldet und das Programm endet? Wie kann ich denn von zu Hause aus ein Programm starten, die ssh Verbindung beenden, den PC ausschalten und auf der Arbeit schließlich in einem Terminal den aktuellen Stand begutachten?

Versteht ihr was ich meine? :?

Gruß,
-- Klaus.
"In X you don't understand things, you just get used to them"
Mit X in {mathematics,quantum physics}

Bei LaTex führen mir manchmal einfach zu viele Wege nach Rom.

uname
Beiträge: 12487
Registriert: 03.06.2008 09:33:02

Re: über ssh arbeiten

Beitrag von uname » 16.01.2013 16:23:25

Schau dir mal Debianscreen oder Debiantmux an.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: über ssh arbeiten

Beitrag von Cae » 16.01.2013 16:42:07

Klaus82 hat geschrieben:Wenn ich nun von zu Hause mittels ssh eingeloggt bin und dann die ssh Verbindung beende, dann... ? Ist das wieder wie abgemeldet und das Programm endet?
Ja, dann ist die Sitzung tot. Vergleiche das mit einem Telefonanruf: Wenn du auflegst, kann die Gegenstelle ebenfalls nicht weitersprechen. Wenn du willst, dass die Sitzung weiterlebt, kannst du entweder nohup verwenden (was aber unschoen ist, weil man z.B. an ein interaktives Programm nicht wirklich gut wieder dran kommt), oder einen Terminalmultiplexer, wie uname schon vorgeschlagen hat. Du wuerdest z.B. screen starten, in der dann sichtbaren Shell dein Programm, dann kannst du irgendwann das xterm zu machen und lokal oder ueber SSH mit screen -dr die Sitzung weiterfuehren. Umgekehrt geht natuerlich auch, ueber SSH screen starten und lokal darin weiterarbeiten.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

maledora4

Re: über ssh arbeiten

Beitrag von maledora4 » 16.01.2013 18:18:22

Fuer den Anfang hat mich dies begeistert:
http://www.daniel-ritter.de/blog/6-nutz ... h-tun-kann :wink:

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: über ssh arbeiten

Beitrag von nepos » 17.01.2013 10:45:54

Wenn du mit graphischer Oberflaeche arbeiten willst oder musst, dann kannst du dir auch mal NX, VNC oder aehnliches anschauen.
SSH selbst kann zwar auch X-Forwarding, aber je nachdem wird das sehr sehr zaeh.

uname
Beiträge: 12487
Registriert: 03.06.2008 09:33:02

Re: über ssh arbeiten

Beitrag von uname » 17.01.2013 11:35:02

Wenn du mit graphischer Oberflaeche arbeiten willst oder musst,
Persönlich finde ich das Arbeiten mit mehreren virtuellen Terminals in einer Screen-Sitzung sehr angenehm. Natürlich muss man die zugehörigen Tastenkombinationen kennen. Selbst ein Split-Screen ist kein Problem. Anwender, die eine Grafik brauchen, um einen Texteditor (!vim) oder einen Filemanager (!mc) zu bedienen kann man sowieso nicht mehr helfen. Und da heute ja alles webbasiert administriert wird braucht man eigentlich nur noch den zugehörigen lokalen Webserver-Port per Local-SSH-Port-Forwarding durch SSH "nach hause" tunneln, damit es überhaupt geht (NAT) bzw. sicherer ist. Ein Bedarf für NX oder VNC sehe ich selten bis nie. Wobei wem der Tunnel zuviel Arbeit ist kann natürlich auch Textbrowser wie wget, lynx oder w3m einsetzen. Auch sehr nett.

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: über ssh arbeiten

Beitrag von nepos » 17.01.2013 14:41:33

Normal arbeite ich auch nur mit Terminals und nutze screen oder tmux.
Aber sobald man auch grafische Anwendungen benoetigt ist sowas wie NX halt schon sehr nett.
Haengt halt immer davon ab, was man nun genau braucht :wink:

Benutzeravatar
Klaus82
Beiträge: 163
Registriert: 04.02.2012 09:19:21

Re: über ssh arbeiten

Beitrag von Klaus82 » 21.01.2013 13:07:33

Hallo,
Cae hat geschrieben:
Klaus82 hat geschrieben:Wenn ich nun von zu Hause mittels ssh eingeloggt bin und dann die ssh Verbindung beende, dann... ? Ist das wieder wie abgemeldet und das Programm endet?
Ja, dann ist die Sitzung tot. Vergleiche das mit einem Telefonanruf: Wenn du auflegst, kann die Gegenstelle ebenfalls nicht weitersprechen.
Nach längerem Nachdenken ist das wahrscheinlich genau mein Verständnisproblem, vielleicht hinkt auch das Beispiel.

Wenn ich jemanden anrufe und sage: "Berechne bitte drei plus sieben." dann kann ich anschließend ja auflegen, denn die Aufgabe wurde übermittelt und zum (eigenständigen) Ausrechnen benötigt die Person ja keine Verbindung zu mir.

Also lege ich auf und rufe drei Minuten später wieder an, um das Ergebnis abzufragen.

Allerdings muss das Abmelden bei Linux scheinbar alle Prozesse beenden? Als würde die andere Person plötzlich nicht mehr Kopfrechnen können, nur weil ich den Hörer auflege und die Verbindung zu mir beendet wurde.

Gruß,
-- Klaus.
"In X you don't understand things, you just get used to them"
Mit X in {mathematics,quantum physics}

Bei LaTex führen mir manchmal einfach zu viele Wege nach Rom.

pferdefreund
Beiträge: 3800
Registriert: 26.02.2009 14:35:56

Re: über ssh arbeiten

Beitrag von pferdefreund » 21.01.2013 14:43:52

nohup konsolenprogramm 2>&1 mein-ergebnis
Und beim nächsten Anmelden less mein-ergebnis
So kann man Programme auch nach dem Abmelden laufen lassen.

uname
Beiträge: 12487
Registriert: 03.06.2008 09:33:02

Re: über ssh arbeiten

Beitrag von uname » 21.01.2013 15:13:01

Vielleicht solltest du dich mit der Prozessverwaltung von Linux ein wenig beschäftigen. Im Normalfall ist es so, dass mit dem Beenden des Vater-Prozesses alle Kindsprozesse mit beendet werden. Für das erste Beispiel würde es beim Beenden von SSH den Totalverlust der Bash und deren Programme bedeuten. Auch eine Addition würde nicht zuende geführt.

Code: Alles auswählen

init(1)-+-
        |-sshd(1326)---sshd(21882)---sshd(21888)---bash(21889)
Ruft man screen auf passiert folgendes:

Code: Alles auswählen

init(1)-+-   
       |-sshd(1326)---sshd(21882)---sshd(21888)---bash(21889)---screen(21936)---screen(21937)---bash(21938)
Bricht nun die SSH-Sitzung weg sieht es so aus:

Code: Alles auswählen

init(1)-+-  
        |-screen(21937)---bash(21938)
Sowohl der Screen-Prozess als auch die Shell laufen noch.Hängen nun aber an init(1). Nun kann man die Sitzung reattachen.

Code: Alles auswählen

screen -RR
Das ist der ganze Trick von Debianscreen bzw. Debiantmux. Ob es bei nohup ähnlich läuft weiß ich nicht.

Benutzeravatar
Klaus82
Beiträge: 163
Registriert: 04.02.2012 09:19:21

Re: über ssh arbeiten

Beitrag von Klaus82 » 30.04.2013 09:08:35

Hallo,

ich habe zum Einloggen über ssh wieder eine Frage. Ich habe mir z.B. für ls einen alias angelegt und in .bashrc gespeichert.

Warum ist dieser alias nicht aktiv, wenn ich mich mittels ssh einlogge? Ich schätze das hängt genau damit zusammen, dass das Einloggen über ssh etwas anderes ist als das Anmelden, z.B. wird die .bashrc nicht geladen / eingelesen?

Gruß,
-- Klaus.
"In X you don't understand things, you just get used to them"
Mit X in {mathematics,quantum physics}

Bei LaTex führen mir manchmal einfach zu viele Wege nach Rom.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: über ssh arbeiten

Beitrag von Cae » 30.04.2013 17:52:32

Das ist ganz simpel, du hast nicht deine lokale /bin/bash, die deine lokale ~/.bashrc einliest, sondern die /bin/bash des entfernten Systems. Die lokale Bash hat damit ueberhaupt nix mehr zu tun, deswegen funktionieren lokale Aliase auch nicht. Die etwas nervige Konsequenz daraus ist, dass man die .${SHELL}rc manuell auf jedes System packen muss, wo man dieses Verhalten haben will.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

uname
Beiträge: 12487
Registriert: 03.06.2008 09:33:02

Re: über ssh arbeiten

Beitrag von uname » 30.04.2013 18:56:31

Am besten ist auf Aliases ganz zu verzichten. Genauso wie ich natürlich immer (auch mit X11) den Vim in der Textversion nutze, da er oder Vi immer da ist.

Benutzeravatar
Klaus82
Beiträge: 163
Registriert: 04.02.2012 09:19:21

Re: über ssh arbeiten

Beitrag von Klaus82 » 08.05.2013 10:10:38

Ich habe dazu mal wieder eine andere Frage.
Ich habe öfter den Fall, dass ich mich von zu Hause mittels ssh an der Uni einlogge, um eine Datei zu holen. Diese Datei kann dann allerdings in einigen Unterverzeichnissen liegen, die ich dann alle abtippen müsste.
Also habe ich mir folgendes überlegt:
Ich speichere den ganzen Pfad in einer Variablen

Code: Alles auswählen

a=`pwd file`
Dann müsste ich von meinem Rechner aus lediglich eingeben

Code: Alles auswählen

scp username@server:$a .
um die Datei mittels scp in das Verzeichnis zu kopieren, in dem ich mich gerade befinde.

Das Problem ist nur, dass der Inhalt der Variable leer ist, sobald ich die ssh - Verbindung beende. Kann ich also nicht den Inhalt der Variablen über die ssh-Verbindung hinaus speichern? Also in der shell? Ich dachte dazu würde ich z.B. export verwenden, also

Code: Alles auswählen

a=`pwd file`
export a
<strg+d> // terminates ssh
scp username@server:$a .
Aber das geht auch nicht. :?

Gruß,
-- Klaus.
"In X you don't understand things, you just get used to them"
Mit X in {mathematics,quantum physics}

Bei LaTex führen mir manchmal einfach zu viele Wege nach Rom.

DeletedUserReAsG

Re: über ssh arbeiten

Beitrag von DeletedUserReAsG » 08.05.2013 15:31:38

Du könntest es in eine Datei schreiben, und die bei Bedarf sourcen. Oder screen/tmux benutzen, und die Shell offen lassen.

cu,
niemand

Benutzeravatar
r900
Beiträge: 1053
Registriert: 09.10.2011 20:06:11
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Stockholm

Re: über ssh arbeiten

Beitrag von r900 » 08.05.2013 16:39:06

Klaus82 hat geschrieben:Ich dachte dazu würde ich z.B. export verwenden
export funktioniert nur für Prozesse die aus der shell gestartet werden die die Variable zur Verfügung stellt. Globale Variablen wie in Programmiersprachen gibt es im shell-Kontext nicht. Ein child-Prozess hat keine Möglichkeit Variablen des parents zu verändern. Zumal es hier ja auch noch shells sind die auf verschiedenen Rechnern laufen.

Ich habe es noch nie ausprobiert, aber Debiansshfs hört sich interessant an.

Nachtrag: gerade kurz getestet, sshfs scheint recht unkompliziert zu sein.
# apt-get install sshfs
# adduser <username> fuse

Danach einmal vom Desktop abmelden und wieder anmelden damit die Änderung der Gruppenzugehörigkeit registriert wird.
$ mkdir ~/sshfs
$ sshfs user@host: ~/sshfs

Und schon sind alle Dateien des Homeverzeichnisses von user auf host unter ~/sshfs verfügbar.

unmount mit
$ fusermount -u ~/sshfs

exubuntu
Beiträge: 169
Registriert: 29.03.2013 22:25:44

Re: über ssh arbeiten

Beitrag von exubuntu » 08.05.2013 17:31:02

Wenn deine ssh-Verbindung schnell genug ist, koenntest du auch eine shell hernehmen, die dir das tippen per (remote) completion abnimmt, zsh zum Bleistift.

uname
Beiträge: 12487
Registriert: 03.06.2008 09:33:02

Re: über ssh arbeiten

Beitrag von uname » 08.05.2013 23:12:41

Falls du als Client Linux nutzt könntest du auch innerhalb von Debianmc "ssh" nutzen.

Antworten